:root{
  --night:#0f1013; --night2:#17181c; --night-line:#2b2d33; --red2:#9c0c23; --mist:#c4c7ce;
  --font-head:'Plus Jakarta Sans','Inter',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; --font-cond:'Barlow Semi Condensed','Roboto Condensed','Arial Narrow',sans-serif;
  --red:#c8102e; --red2:#9c0c23; --ink:#1d1e20; --grey:#6b6f76; --line:#e4e4e6;
  --bg:#ffffff; --alt:#f6f6f7; --dark:#141517;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;font-size:112.5%}
body{margin:0;font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
h1,h2,h3{line-height:1.15;margin:0 0 16px;letter-spacing:-.02em}
h1{font-size:clamp(2.4rem,5vw,4rem);font-weight:800}
h2{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:700}
h3{font-size:1.15rem;font-weight:700}
p{color:var(--grey);margin:0 0 14px}
.eyebrow{display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:12px}

/* ---------- header ---------- */
html{scroll-padding-top:84px}
header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.98);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
header.solid{border-color:var(--line);box-shadow:0 10px 26px -20px rgba(20,21,26,.4)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px clamp(20px,3.6vw,56px);max-width:1360px;margin:0 auto}
.brand{display:flex;align-items:center;flex:none}
.brand img{height:42px;width:auto;display:block}
nav.links{display:flex;align-items:center;gap:4px}
nav.links>a:not(.nav-cta),.dd-btn{font-family:var(--font-head);font-size:.88rem;font-weight:600;letter-spacing:0;color:var(--ink);background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:10px 15px;border-radius:8px;position:relative;transition:color .2s,background .2s}
nav.links>a:not(.nav-cta)::after,.dd-btn::after{content:"";position:absolute;left:15px;right:15px;bottom:4px;height:2px;border-radius:2px;background:var(--red);transform:scaleX(0);transition:transform .25s}
nav.links>a:not(.nav-cta):hover,.dd-btn:hover,.dd.open .dd-btn{color:var(--red)}
nav.links>a.active,.dd-btn.active{color:var(--red)}
nav.links>a.active::after,.dd-btn.active::after,nav.links>a:not(.nav-cta):hover::after{transform:scaleX(1)}
.dd-btn .chev{transition:transform .2s}
.dd.open .dd-btn .chev{transform:rotate(180deg)}
.nav-cta{margin-left:12px;font-family:var(--font-head);font-weight:600;font-size:.88rem;background:var(--red);color:#fff;padding:12px 24px;border-radius:999px;box-shadow:0 10px 22px -12px rgba(200,16,46,.8);transition:background .2s,transform .2s}
.nav-cta:hover{background:var(--red2);transform:translateY(-1px)}
.dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 10px);left:0;min-width:320px;background:#fff;border:1px solid #e6e7eb;border-radius:14px;padding:8px;box-shadow:0 28px 56px -22px rgba(20,21,26,.45);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s}
.dd-menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.dd-right .dd-menu{left:auto;right:0;min-width:290px}
.dd-menu a{display:block;padding:11px 14px;border-radius:9px;font-family:var(--font-head);font-size:.88rem;font-weight:500;color:#2d3037;white-space:nowrap;transition:background .15s,color .15s}
.dd-menu a:hover,.dd-menu a:focus-visible{background:#fdf1f3;color:var(--red)}
.dd.open .dd-menu{opacity:1;visibility:visible;transform:none}
@media(min-width:981px) and (hover:hover){.dd:hover .dd-menu{opacity:1;visibility:visible;transform:none}.dd:hover .dd-btn{color:var(--red)}.dd:hover .dd-btn .chev{transform:rotate(180deg)}}
nav.links a:focus-visible,.dd-btn:focus-visible,.burger:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.burger{display:none;background:none;border:0;width:28px;height:20px;position:relative;cursor:pointer;padding:0}
.burger span{position:absolute;left:0;right:0;height:2px;background:var(--ink);transition:.25s}
.burger span:nth-child(1){top:0}.burger span:nth-child(2){top:9px}.burger span:nth-child(3){top:18px}
@media(max-width:980px){
  .burger{display:block}
  .brand img{height:36px}
  nav.links{position:fixed;top:61px;left:0;right:0;max-height:calc(100vh - 61px);max-height:calc(100dvh - 61px);overflow-y:auto;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:6px 20px 22px;border-bottom:1px solid var(--line);box-shadow:0 24px 40px -24px rgba(0,0,0,.35);transform:translateY(-130%);visibility:hidden;transition:transform .3s,visibility .3s}
  nav.links.open{transform:translateY(0);visibility:visible}
  nav.links>a:not(.nav-cta),.dd-btn{padding:15px 0;border-radius:0;border-bottom:1px solid var(--line);justify-content:space-between;width:100%;font-size:.95rem}
  nav.links>a:not(.nav-cta)::after,.dd-btn::after{display:none}
  .dd-menu{position:static;min-width:0;border:0;box-shadow:none;border-radius:0;padding:0 0 6px 14px;opacity:1;visibility:visible;transform:none;display:none;background:transparent}
  .dd-menu::before{display:none}
  .dd.open .dd-menu{display:block}
  .dd-menu a{white-space:normal;padding:11px 8px;border-bottom:1px solid #f0f1f4;border-radius:0}
  .nav-cta{margin:16px 0 0;text-align:center}
}

/* ---------- hero ---------- */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden;background:var(--dark);color:#fff}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero .eyebrow{color:#ff6b81}
.hero p.lead{color:#f1f1f3;font-size:1.3rem;max-width:640px;text-shadow:0 1px 14px rgba(0,0,0,.7)}
.blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.35;z-index:1;pointer-events:none}
.blob.b1{width:340px;height:340px;background:var(--red);top:-80px;right:-60px;animation:float1 14s ease-in-out infinite}
.blob.b2{width:260px;height:260px;background:#fff;bottom:-100px;left:10%;animation:float2 16s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translate(0,0)}50%{transform:translate(-40px,50px)}}
@keyframes float2{0%,100%{transform:translate(0,0)}50%{transform:translate(50px,-30px)}}

.btn{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;padding:14px 26px;border-radius:3px;font-weight:700;font-size:.85rem;letter-spacing:.03em;border:1px solid var(--red);transition:.25s}
.btn:hover{background:var(--red2);transform:translateY(-2px)}
.btn.ghost:hover{border-color:#fff}
.btn.outline:hover{border-color:var(--red);color:var(--red)}


/* ---------- sections ---------- */
section{padding:88px 0}
section.alt{background:var(--alt)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.show{opacity:1;transform:none}
.grid{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c2{grid-template-columns:repeat(2,1fr)}
@media(max-width:860px){.grid.c3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid.c2,.grid.c3{grid-template-columns:1fr}}
.card{background:#fff;padding:30px}
.card h3{border-left:3px solid var(--red);padding-left:12px}
.card:hover{background:#fffafa}

.board-card{background:#fff;padding:46px 26px 30px;text-align:center;position:relative}
.board-card .avatar{width:92px;height:92px;border-radius:50%;object-fit:cover;position:absolute;top:0;left:50%;transform:translate(-50%,-50%);border:4px solid #fff;box-shadow:0 2px 10px rgba(0,0,0,.15);background:var(--alt)}
.board-card h3{border-left:none;padding-left:0;margin-top:4px}
.board-card .role{display:block;color:var(--red);font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:-8px 0 12px}
.board-card p{font-size:.92rem;text-align:left}

.list-row{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding:22px 0;border-top:1px solid var(--line)}
.list-row:last-child{border-bottom:1px solid var(--line)}
.list-row small{color:var(--grey);display:block;margin-top:4px}
.list-row a{color:var(--red);font-size:.75rem;font-weight:700;letter-spacing:.06em;white-space:nowrap}

.tag{display:inline-block;border:1px solid var(--line);padding:9px 16px;margin:0 8px 8px 0;border-radius:3px;font-size:.85rem;font-weight:600;transition:.2s}
.tag:hover{border-color:var(--red);color:var(--red)}

form input,form textarea{width:100%;padding:13px;margin-bottom:14px;border:1px solid var(--line);border-radius:3px;font:inherit;background:#fff}
form input:focus,form textarea:focus{outline:2px solid var(--red);outline-offset:-1px}

/* ---------- page hero (subpages) ---------- */
.page-hero{background:var(--dark);color:#fff;padding:150px 0 60px;position:relative;overflow:hidden}
.page-hero .blob{opacity:.25}

/* ---------- footer ---------- */
footer{background:var(--dark);color:#c9cacd;padding:60px 0 30px;position:relative}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
@media(max-width:700px){footer .wrap{grid-template-columns:1fr}}
footer h3{color:#fff;font-size:.95rem}
footer a:hover{color:var(--red)}
footer .type-line{font-weight:700;color:#fff;font-size:1.1rem;min-height:1.4em}
footer .type-line::after{content:"|";color:var(--red);animation:blink 1s step-end infinite;margin-left:2px}
@keyframes blink{50%{opacity:0}}
.hero {
  position: relative;
  overflow: hidden;
}

.blob {
  z-index: 2;
}
/* hide the white blurred blob in the home hero (was showing as a white smudge) */
.hero .blob.b2{display:none}

/* ---------- technologies page ---------- */
.tech-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:980px){.tech-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.tech-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:420px){.tech-grid{grid-template-columns:1fr}}
.tech-card{--c:#c8102e;position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 20px 24px;text-align:center;overflow:hidden;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
  opacity:0;transform:translateY(22px);animation:techIn .6s ease forwards;animation-delay:calc(var(--i,0)*80ms)}
@keyframes techIn{to{opacity:1;transform:none}}
.tech-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.tech-card::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:var(--c);opacity:.06;top:-70px;right:-70px;transition:opacity .3s,transform .4s}
.tech-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px -18px rgba(0,0,0,.25);border-color:transparent}
.tech-card:hover::before{transform:scaleX(1)}
.tech-card:hover::after{opacity:.12;transform:scale(1.4)}
.tech-logo{width:84px;height:84px;margin:0 auto 18px;border-radius:22px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--c) 10%,#fff);transition:transform .35s cubic-bezier(.3,1.5,.5,1),background .3s}
.tech-logo svg{width:52px;height:52px;display:block}
.tech-card:hover .tech-logo{transform:scale(1.1) rotate(-4deg);background:color-mix(in srgb,var(--c) 16%,#fff)}
.tech-card h3{border:0;padding:0;margin:0 0 4px;font-size:1.08rem}
.tech-card .cat{display:block;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--c);margin-bottom:10px}
.tech-card p{font-size:.85rem;margin:0;line-height:1.5}
.react-atom{transform-origin:32px 32px}
.tech-card:hover .react-atom{animation:spin 6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Our Team: expertise tree ---------- */
.team-section{background:var(--dark);color:#fff;padding:96px 0 110px}
.team-head{text-align:center;max-width:640px;margin:0 auto 64px}
.team-head h2{color:#fff;font-size:clamp(2rem,4vw,3rem);margin-bottom:14px}
.team-head .team-tagline{color:#b9bbc0;font-size:1.05rem;margin:0}

.team-nodes{list-style:none;margin:0;padding:0;position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(5,1fr);column-gap:20px;row-gap:120px;align-items:stretch}
.team-tree{position:relative}
.team-lines{position:absolute;top:0;left:0;pointer-events:none;overflow:visible;z-index:0}
.team-lines path{fill:none;stroke:var(--red);stroke-width:1;opacity:.5;transition:opacity .3s,stroke-width .3s}
.team-lines circle{fill:var(--red);opacity:.8;transition:r .3s}
.team-lines path.on{opacity:1;stroke-width:1.6}
/* draw-in animation (plays when .reveal gets .show) */
.team-lines path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s ease .3s,opacity .3s,stroke-width .3s}
.team-nodes.show + .team-lines path{stroke-dashoffset:0}

.team-node,.team-core{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;text-align:center}
.team-node.top{grid-row:1}
.team-node.bot{grid-row:3}
.team-node{background:#1c1d20;border:1px solid rgba(255,255,255,.12);border-radius:30px;padding:18px 20px;min-height:78px;
  font-size:.92rem;font-weight:600;line-height:1.35;color:#ececee;cursor:default;
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease}
.team-node:hover{transform:translateY(-5px);background:#222326;border-color:var(--red);box-shadow:0 14px 34px -14px rgba(200,16,46,.55)}

.team-core{grid-row:2;grid-column:1/-1;justify-self:center;width:min(400px,100%);flex-direction:column;gap:6px;
  background:#1c1d20;border:1.5px solid var(--red);border-radius:44px;padding:30px 36px;
  box-shadow:0 0 0 8px rgba(200,16,46,.07),0 18px 50px -20px rgba(200,16,46,.6);
  transition:transform .3s ease,box-shadow .3s ease}
.team-core:hover{transform:translateY(-3px);box-shadow:0 0 0 10px rgba(200,16,46,.11),0 22px 56px -18px rgba(200,16,46,.75)}
.team-core small{font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#ff6b81}
.team-core strong{font-size:1.45rem;font-weight:800;letter-spacing:-.01em;line-height:1.2;color:#fff}

/* ---- tablet: 3 columns, central spine with branches ---- */
@media(max-width:980px){
  .team-lines{display:none}
  .team-nodes{grid-template-columns:repeat(3,1fr);column-gap:18px;row-gap:44px}
  .team-node.top,.team-node.bot{grid-row:auto}
  .team-core{grid-row:auto}
  .team-node::before,.team-node::after{content:"";position:absolute;background:rgba(200,16,46,.6);pointer-events:none}
  /* side columns: short tick + horizontal branch to the spine */
  .team-node::before{left:50%;top:-22px;width:1px;height:22px}
  .team-node::after{top:-22px;height:1px;width:calc(100% + 18px)}
  .team-node:nth-child(3n+2)::after{left:50%}
  .team-node.team-node:nth-child(3n+1)::after{right:50%}
  /* middle column forms the spine */
  .team-node:nth-child(3n)::before{top:-44px;height:44px}
  .team-node:nth-child(3n)::after{display:none}
  /* last (10th) node sits in the middle column */
  .team-node:last-child{grid-column:2}
  .team-node:last-child::before{top:-44px;height:44px}
  .team-node:last-child::after{display:none}
}

/* ---- mobile: single column with left spine ---- */
@media(max-width:640px){
  .team-head{margin-bottom:44px}
  .team-nodes{grid-template-columns:1fr;row-gap:14px;padding-left:30px}
  .team-nodes::before{content:"";position:absolute;left:10px;top:40px;bottom:32px;width:1px;background:rgba(200,16,46,.6)}
  .team-core{margin:0 0 18px -30px;width:calc(100% + 30px);justify-self:stretch;padding:24px 26px}
  .team-node{justify-content:flex-start;text-align:left;border-radius:26px;min-height:64px;padding:16px 22px}
  .team-node:last-child{grid-column:auto}
  .team-node::before,.team-node:nth-child(n)::before{left:-20px;top:50%;width:20px;height:1px}
  .team-node::after,.team-node:nth-child(n)::after{display:block;left:-23px;right:auto;top:calc(50% - 3px);width:7px;height:7px;border-radius:50%;background:var(--red)}
}
@media(prefers-reduced-motion:reduce){.team-node,.team-core{transition:none}.team-lines path{transition:none;stroke-dashoffset:0}}

/* ---------- Governance ---------- */

/* principle cards */
.gov-card.show:hover{transform:translateY(-4px);box-shadow:0 16px 36px -20px rgba(0,0,0,.28);border-color:#d3d3d6}
.gov-card:hover::before{transform:scaleX(1)}

/* policy documents */
.policy-card.show:hover{transform:translateY(-4px);box-shadow:0 16px 36px -20px rgba(0,0,0,.28);border-color:#d3d3d6;border-left-color:var(--red)}
.policy-card:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.policy-card:hover .dl i{transform:translate(2px,-2px)}

/* ---------- CEO flip card (About) ---------- */
.ceo-flip{perspective:1400px;margin:6px 0 10px;cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.ceo-inner{display:grid;position:relative;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.4,.2,.2,1)}
.ceo-face{grid-area:1/1;min-height:420px;border-radius:4px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 18px 40px -24px rgba(0,0,0,.5)}
.ceo-front{position:relative;background:var(--dark)}
.ceo-front img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.ceo-front::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,21,23,.78) 0,rgba(20,21,23,0) 38%)}
.ceo-front::before{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--red);z-index:2}
.ceo-hint{position:absolute;left:20px;bottom:18px;z-index:2;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.ceo-hint .h-tap{display:none}
.ceo-hint::after{content:" \21BB";color:#ff6b81}
.ceo-back{transform:rotateY(180deg);background:var(--dark);color:#fff;padding:54px 34px 64px;display:flex;flex-direction:column;justify-content:center;border-top:3px solid var(--red)}
.ceo-back .open-q{position:absolute;top:8px;left:22px;font-family:Georgia,'Times New Roman',serif;font-size:4.4rem;line-height:1;color:var(--red);font-weight:700}
.ceo-back p{font-size:1.05rem;line-height:1.65;color:#f1f1f3;margin:0}
.ceo-back .close-q{font-family:Georgia,'Times New Roman',serif;font-size:2.6rem;line-height:0;color:var(--red);font-weight:700;display:inline-block;margin-left:6px;vertical-align:-12px}
.ceo-sign{margin-top:22px;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#ff6b81}
.ceo-hint.back{color:#b9bbc0}
.ceo-flip.is-flipped .ceo-inner{transform:rotateY(180deg)}
.ceo-flip:focus-visible .ceo-face{outline:3px solid var(--red);outline-offset:3px}
@media(hover:hover){.ceo-flip:hover .ceo-inner{transform:rotateY(180deg)}.ceo-hint .h-hover{display:inline}.ceo-hint.back{display:none}}
@media(hover:none){.ceo-hint .h-hover{display:none}.ceo-hint .h-tap{display:inline}}
@media(max-width:560px){.ceo-back{padding:50px 24px 60px}.ceo-face{min-height:380px}}
@media(prefers-reduced-motion:reduce){.ceo-inner{transition:none}}
@media(max-width:820px){.about-split{grid-template-columns:1fr !important;gap:44px !important}}

/* ---------- service cards: colorful icons + translucent watermark ---------- */
.card.svc{--c:#c8102e;--c2:#fb7185;position:relative;overflow:hidden;isolation:isolate;padding:34px 30px 32px;transition:background .3s,box-shadow .3s}
.card.svc::before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;top:-90px;right:-90px;z-index:-2;
  background:radial-gradient(circle,var(--c2),transparent 70%);opacity:.14;transition:opacity .35s,transform .5s}
.card.svc::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--c),var(--c2));transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.card.svc:hover{background:color-mix(in srgb,var(--c) 4%,#fff);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 18%,transparent)}
.card.svc:hover::before{opacity:.26;transform:scale(1.25)}
.card.svc:hover::after{transform:scaleX(1)}
.card.svc:hover .svc-wm{opacity:.13;transform:rotate(-4deg) scale(1.1)}
.card.svc:hover .svc-ico{transform:scale(1.08) rotate(-5deg)}
.card.svc h3{border-left-color:var(--c)}

/* ---------- project detail pages ---------- */
.list-row small.pj-date{color:var(--red);font-weight:600;margin-top:2px}
.pj-back{display:inline-block;color:#c9cacd;font-size:.8rem;font-weight:700;letter-spacing:.06em;margin-bottom:18px}
.pj-back:hover{color:#fff}
.pj-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pj-chips span{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);padding:8px 16px;border-radius:99px;font-size:.82rem;font-weight:600;color:#fff}
.pj-chips svg{width:15px;height:15px}
.pj-chips span.live{border-color:#4ade80;color:#4ade80}
.pj-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start}
@media(max-width:900px){.pj-layout{grid-template-columns:1fr}}
.pj-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pj-slot{position:relative;margin:0;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--alt);border:1.5px dashed #cfd0d4}
.pj-slot.main{grid-column:1/-1;aspect-ratio:16/9}
.pj-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:12px;color:var(--grey)}
.pj-ph b{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.pj-ph span{font:600 .72rem ui-monospace,Menlo,Consolas,monospace;word-break:break-all}
.pj-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#fff;cursor:zoom-in;transition:transform .4s}
.pj-slot:has(img){border-style:solid;border-color:var(--line)}
.pj-slot img:hover{transform:scale(1.03)}
.pj-side{position:sticky;top:90px}
.pj-facts{border:1px solid var(--line);border-top:3px solid var(--red);border-radius:4px;padding:26px;background:#fff}
.pj-facts dl{margin:0 0 18px}
.pj-facts dt{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-top:14px}
.pj-facts dd{margin:2px 0 0;font-weight:600}
.pj-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:600px){.pj-nav{grid-template-columns:1fr}.pj-nav a:last-child{text-align:left!important}}
.pj-nav a{display:block;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:4px;transition:.25s}
.pj-nav a:hover{border-color:var(--red);transform:translateY(-3px)}
.pj-nav small{display:block;color:var(--red);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.pj-nav span{font-weight:600;font-size:.92rem;line-height:1.35;display:block}
.pj-lb{position:fixed;inset:0;z-index:999;background:rgba(10,10,12,.9);display:grid;place-items:center;padding:30px;cursor:zoom-out}
.pj-lb img{max-width:100%;max-height:100%;border-radius:6px}

/* ---------- detailed contact form ---------- */
.cform{background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:4px;padding:30px}
.cform input,.cform select,.cform textarea{margin-bottom:0}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}
.cf-full{grid-column:1/-1}
@media(max-width:560px){.cf-grid{grid-template-columns:1fr}}
.cf-f label,.cf-lbl{display:block;font-size:.82rem;font-weight:700;margin-bottom:6px;color:var(--ink)}
.cf-f[hidden]{display:none}
.req{color:var(--red)}
.opt{color:var(--grey);font-weight:500}
.cf-note{font-size:.8rem;margin-bottom:18px}
.cform select{width:100%;padding:13px;border:1px solid var(--line);border-radius:3px;font:inherit;background:#fff;color:var(--ink)}
.cform select:focus{outline:2px solid var(--red);outline-offset:-1px}
.cform .bad{border-color:var(--red);background:#fff5f6}
.cf-seg{display:flex;flex-wrap:wrap;gap:10px}
.cf-seg label{margin:0;cursor:pointer}
.cf-seg input{position:absolute;opacity:0;width:0;height:0;margin:0;padding:0}
.cf-seg span{display:inline-block;padding:10px 18px;border:1.5px solid var(--line);border-radius:99px;font-size:.86rem;font-weight:600;color:var(--grey);transition:.2s}
.cf-seg label:hover span{border-color:var(--red);color:var(--ink)}
.cf-seg input:checked+span{background:var(--red);border-color:var(--red);color:#fff}
.cf-seg input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.cf-err{color:var(--red);font-weight:600;font-size:.88rem;margin:16px 0 0}
.cf-ok{margin:16px 0 0;padding:12px 14px;background:#f0fdf4;border:1px solid #86efac;border-radius:4px;color:#166534;font-size:.88rem}
.cf-err+.btn,.cf-grid+.btn{margin-top:22px}
.cform .btn{margin-top:22px}

/* ---------- homepage: certifications & accreditations ---------- */
.cert-frame{position:relative;aspect-ratio:595/842;background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;box-shadow:0 10px 28px -14px rgba(0,0,0,.28);transition:transform .3s,box-shadow .3s}
.cert:hover .cert-frame{transform:translateY(-4px);box-shadow:0 18px 36px -14px rgba(0,0,0,.35)}
.cert-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;cursor:zoom-in}
.cert-empty:hover,.cert:hover .cert-empty{transform:none;box-shadow:none}

/* ---------- projects page: image-tinted project cards ---------- */
.list-row.pj-row{position:relative;overflow:hidden;isolation:isolate;align-items:center;padding:30px 28px 30px 32px;margin-bottom:14px;
  border:1px solid var(--line);border-radius:6px;background:#fff;transition:box-shadow .3s,transform .3s,border-color .3s}
.list-row.pj-row:last-child{border-bottom:1px solid var(--line)}
.pj-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c);z-index:2}
.pj-row .pj-bg{position:absolute;top:0;right:0;width:68%;height:100%;object-fit:cover;object-position:center 25%;z-index:-1;
  opacity:.5;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 65%);mask-image:linear-gradient(90deg,transparent 0,#000 65%);
  transition:opacity .4s,transform .6s}
.pj-row>div,.pj-row>a{position:relative;z-index:1}
.pj-row h3{max-width:620px}
.list-row.pj-row>a{background:#fff;border:1px solid var(--line);border-radius:99px;padding:9px 18px;box-shadow:0 4px 14px -8px rgba(0,0,0,.35);transition:.25s}
.pj-row:hover{transform:translateY(-3px);border-color:var(--c);box-shadow:0 16px 34px -18px var(--c)}
.pj-row:hover .pj-bg{opacity:.85;transform:scale(1.04)}
.pj-row:hover>a{background:var(--red);border-color:var(--red);color:#fff}
@media(max-width:700px){
  .list-row.pj-row{flex-direction:column;align-items:flex-start;padding:24px 22px 24px 26px}
  .pj-row .pj-bg{width:100%;opacity:.22;-webkit-mask-image:none;mask-image:none}
  .pj-row:hover .pj-bg{opacity:.35}
}

/* ---------- contact page: compact office cards (no longer stretched to the form's height) ---------- */
.addr{align-self:start;align-content:start}
.addr .card{padding:16px 18px}
.addr .card h3{font-size:.95rem;margin:0 0 6px}
.addr .card p{font-size:.84rem;line-height:1.5;margin:0}
.cf-grid{align-items:end}
.cform select{height:56.8px}

/* ---------- clients page: organisation logos ---------- */
.logo-box{position:relative;flex:none;width:96px;height:64px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 6px 16px -10px rgba(0,0,0,.3);overflow:hidden}
.logo-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:8px;background:#fff}
.logo-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:6px;font-size:.78rem;font-weight:800;letter-spacing:.04em;color:var(--grey);background:var(--alt)}
@media(max-width:560px){.logo-box{width:80px;height:56px}}

/* ---------- home: certifications bg + governance section ---------- */
.certs{background:var(--alt)}

/* ---------- footer: follow us ---------- */
footer .wrap{grid-template-columns:1.3fr 1fr 1fr 1.25fr}
@media(max-width:980px){footer .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:560px){footer .wrap{grid-template-columns:1fr}}
.soc:hover svg,.soc:hover b{color:var(--red)}

/* ---------- project bars: organisation logo on the left ---------- */
.pj-row h3{max-width:540px}

/* ---------- project bars: logo sits to the LEFT of each coloured bar ---------- */
.pj-item{display:flex;align-items:center;gap:18px;margin-bottom:14px}
.pj-item>.pj-row{flex:1;min-width:0;margin-bottom:0}
.pj-item>.logo-box{width:104px;height:72px}
.pj-row h3{max-width:620px}
@media(max-width:700px){
  .pj-item{flex-direction:column;align-items:stretch;gap:10px}
  .pj-item>.logo-box{width:92px;height:62px}
}

/* ---------- team tree: 13 nodes (7 top + 6 bottom, centred) ---------- */
.team-nodes{grid-template-columns:repeat(14,minmax(0,1fr));column-gap:18px}
.team-node{grid-column:span 2;font-size:.84rem;padding:16px 12px}
.team-node.bfirst{grid-column:2/span 2}
@media(max-width:980px){
  .team-nodes{grid-template-columns:repeat(3,1fr);column-gap:18px}
  .team-node,.team-node.bfirst{grid-column:auto;font-size:.92rem;padding:18px 20px}
  .team-node:last-child{grid-column:2}
}
@media(max-width:640px){
  .team-nodes{grid-template-columns:1fr}
  .team-node,.team-node.bfirst{padding:16px 22px}
  .team-node:last-child{grid-column:auto}
}

/* ---------- about: video ---------- */
.video-head{text-align:center;max-width:640px;margin:0 auto 34px}
.video-frame{position:relative;max-width:900px;margin:0 auto;aspect-ratio:16/9;border-radius:6px;overflow:hidden;background:#000;box-shadow:0 22px 50px -24px rgba(0,0,0,.5);border-top:3px solid var(--red)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-link{text-align:center;margin:18px 0 0}
.video-link a{color:var(--red);font-size:.8rem;font-weight:700;letter-spacing:.06em}


/* ======================================================================
   NEW HOME DESIGN  (logo red + charcoal + neutral light)
   Everything below is scoped to new class names so other pages are unaffected.
   ====================================================================== */
.i{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wrapx{max-width:1360px;margin:0 auto;padding:0 clamp(20px,3.6vw,56px)}
.sx{position:relative;padding:clamp(64px,7vw,100px) 0;overflow:hidden}
.sx h2,.sx h3,.sx h4{font-family:var(--font-head);color:var(--ink);letter-spacing:-.02em}
.sx h2{font-weight:700;font-size:clamp(1.85rem,3vw,2.8rem);line-height:1.12;margin:0 0 18px;letter-spacing:-.028em}
.sx h2 em{font-style:normal;color:var(--red)}
.sx p{color:#4e535c;line-height:1.65}
.kicker{display:block;font-family:var(--font-head);font-weight:700;font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ink);margin:0 0 26px}
.kicker::after{content:"";display:block;width:46px;height:3px;border-radius:2px;background:var(--red);margin-top:12px}
.sx-dark .kicker,.sx-dark h2,.sx-dark h3{color:#fff}
.sx-light{background:linear-gradient(180deg,#f8f8fa 0%,#f1f2f5 100%)}
.sx-light.mapbg::before,.sx-gallery::before{content:"";position:absolute;right:-6%;top:2%;width:62%;aspect-ratio:2/1;background:url(map-dots.svg) no-repeat center/contain;opacity:.16;pointer-events:none}
.card-x{background:#fff;border:1px solid #e8e9ee;border-radius:14px;box-shadow:0 10px 30px -18px rgba(20,21,26,.25)}
.ico-c{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#fbe9ec;color:var(--red);flex:none}
.ico-c .i{width:26px;height:26px}
.bar{display:block;width:34px;height:3px;border-radius:2px;background:var(--red);margin:12px 0}
.btnx{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:600;font-size:.92rem;line-height:1;padding:17px 28px;border-radius:999px;border:1px solid transparent;cursor:pointer;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s}
.btnx .i{width:18px;height:18px;transition:transform .25s}.btnx:hover .i{transform:translateX(4px)}
.btnx-red{background:var(--red);color:#fff;box-shadow:0 10px 24px -10px rgba(200,16,46,.7)}.btnx-red:hover{background:var(--red2)}
.btnx-dark{background:var(--night);color:#fff}.btnx-dark:hover{background:#000}.btnx-line:hover{background:#fdf1f3}
.btnx:focus-visible,.sx a:focus-visible,.ft a:focus-visible,.hx-btn:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.media{position:relative;overflow:hidden;background:linear-gradient(135deg,#e4e6eb,#cfd3db);display:grid;place-items:center;color:#a2a8b4}
.media .i{width:44px;height:44px;stroke-width:1.2}
.media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media:has(img) .i{display:none}
.sx-dark .media{background:linear-gradient(135deg,#23252b,#17181c);color:#4b4f59}

/* ---------- hero ---------- */
.hx{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;overflow:hidden;color:#fff;padding:0;
  background:radial-gradient(ellipse 55% 50% at 0% 0%,rgba(200,16,46,.30),transparent 70%),linear-gradient(180deg,#0b0c0f 0%,#111216 60%,#0c0d10 100%)}
.hx-bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hx-content{position:relative;z-index:2;width:100%;max-width:860px;padding:130px 24px 90px;margin-left:clamp(0px,4.6vw,88px)}
.hx h1{font-family:var(--font-head);font-weight:600;font-size:clamp(1.9rem,3.5vw,3.6rem);line-height:1.13;letter-spacing:-.025em;margin:0 0 26px;color:#fff;white-space:nowrap}
.hx-lead{font-size:clamp(1.02rem,.5vw + .9rem,1.2rem);line-height:1.65;color:#c4c7ce;max-width:36em;margin:0 0 38px}
.hx-actions{display:flex;flex-wrap:wrap;gap:20px}
.hx-btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:600;font-size:.95rem;line-height:1;padding:19px 34px;border-radius:8px;border:1px solid transparent;transition:background .25s,border-color .25s,box-shadow .25s}
.hx-btn svg{flex:none;transition:transform .25s}.hx-btn:hover svg{transform:translateX(4px)}
.hx-btn-primary{background:linear-gradient(180deg,#dc1b3a,#b00d29);border-color:#ef4a63;color:#fff;box-shadow:0 0 28px -4px rgba(220,27,58,.6)}
.hx-btn-primary:hover{background:linear-gradient(180deg,#ea2646,#c0102e);box-shadow:0 0 38px -2px rgba(220,27,58,.85)}
.hx-btn-ghost{background:rgba(11,12,15,.35);border-color:rgba(255,255,255,.6);color:#fff}
.hx-btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}
@media(max-width:600px){.hx-content{padding:110px 20px 70px;margin-left:0}.hx h1 br{display:none}.hx h1{white-space:normal}.hx-btn{width:100%;justify-content:space-between;padding:18px 24px}.hx-actions{gap:14px}}

/* ---------- ticker ---------- */
.ticker{background:linear-gradient(90deg,#17181c,#202228 50%,#17181c);border-top:1px solid var(--night-line);border-bottom:1px solid var(--night-line);overflow:hidden;padding:30px 0;color:#fff}
.ticker-track{display:flex;width:max-content;animation:tickerMove 60s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-group{display:flex;flex:none;align-items:center;list-style:none;margin:0;padding:0}
.ticker-group li{display:flex;align-items:center;gap:20px;padding-right:20px;white-space:nowrap;font-family:var(--font-cond);font-weight:600;font-size:.75rem;letter-spacing:.07em;text-transform:uppercase}
.ticker-group li::after{content:"";width:7px;height:7px;border-radius:50%;background:#ff3b57;box-shadow:0 0 8px 1px rgba(255,59,87,.8);margin-left:20px}
@keyframes tickerMove{to{transform:translateX(-25%)}}
@media(max-width:600px){.ticker{padding:20px 0}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none;width:auto;justify-content:center;padding:0 24px}.ticker-group[aria-hidden="true"]{display:none}.ticker-group{flex-wrap:wrap;justify-content:center;row-gap:12px}.ticker-group li:last-child::after{display:none}}

/* ---------- 1. trust / stats ---------- */
.trust-top{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center;margin-bottom:48px}
.trust-top h2{font-size:clamp(2rem,3.6vw,3.3rem);line-height:1.08}
.trust-top p{max-width:40em;font-size:1.02rem}
.stats{display:grid;grid-template-columns:1.25fr repeat(5,1fr);gap:16px}
.stat{padding:22px 20px 24px;display:flex;flex-direction:column}
.stat-top{display:flex;align-items:center;gap:14px}
.stat-top .ico-c{width:46px;height:46px}.stat-top .ico-c .i{width:23px;height:23px}
.stat-n{font-family:var(--font-head);font-weight:800;font-size:clamp(2.1rem,3vw,3rem);line-height:1;color:var(--ink);letter-spacing:-.03em}
.stat h3{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;line-height:1.35;margin:0 0 10px;color:var(--ink)}
.stat p{font-size:.86rem;line-height:1.55;margin:0;color:#656a73}
.stat .bar{margin:16px 0 14px}
.stat-feat{background:linear-gradient(160deg,#d3122f 0%,#8a0a20 100%);border-color:transparent;box-shadow:0 22px 40px -20px rgba(200,16,46,.7)}
.stat-feat .stat-n,.stat-feat h3{color:#fff}.stat-feat p{color:rgba(255,255,255,.88)}.stat-feat .bar{background:#fff}
.stat-feat .ico-c{background:#fff;color:var(--red)}
.partners{margin-top:48px}
.partners-title{display:flex;align-items:center;gap:22px;margin-bottom:26px}
.partners-title::before,.partners-title::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,#c7cad3)}
.partners-title::after{background:linear-gradient(270deg,transparent,#c7cad3)}
.partners-title h3{margin:0;font-size:clamp(1rem,1.6vw,1.3rem);font-weight:700;text-align:center}
/* scrolling client logo bar */
.mq{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.mq-track{display:flex;width:max-content;animation:mq-scroll calc(var(--n,12)*3.6s) linear infinite;will-change:transform}
.mq:hover .mq-track,.mq:focus-within .mq-track{animation-play-state:paused}
.mq-group{display:flex;flex:none}
.mq-group a{display:flex;align-items:center;justify-content:center;flex:none;width:clamp(170px,17vw,240px);height:84px;padding:0 26px;border-left:1px solid #dcdfe5}
.mq-group img{max-height:54px;max-width:86%;width:auto;height:auto;object-fit:contain;transition:transform .3s}
.mq-group img.sq{max-height:72px}
.mq-group a:hover img,.mq-group a:focus-visible img{transform:scale(1.07)}
@keyframes mq-scroll{to{transform:translate3d(-50%,0,0)}}
@media(prefers-reduced-motion:reduce){.mq{-webkit-mask-image:none;mask-image:none}.mq-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}.mq-group[aria-hidden="true"]{display:none}.mq-group{flex-wrap:wrap;justify-content:center;row-gap:10px}}
@media(max-width:1200px){.stats{grid-template-columns:repeat(3,1fr)}.trust-top{grid-template-columns:1fr}}
@media(max-width:700px){.stats{grid-template-columns:1fr 1fr}.stat-feat{grid-column:1/-1}.mq-group a{width:150px;height:70px;padding:0 16px}.mq-group img{max-height:46px}.mq-group img.sq{max-height:60px}}
@media(max-width:460px){.stats{grid-template-columns:1fr}}

/* ---------- 2. who we are ---------- */
.who-top{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}
.who-top .lead{font-size:1.08rem;color:#3a3e46;max-width:34em}
.who-right b{display:block;font-family:var(--font-head);color:var(--ink);margin-bottom:12px}
.who-right p{font-size:.95rem}
.who-media{min-height:340px;border-radius:16px}
@media(max-width:1100px){.who-top{grid-template-columns:1fr}.who-media{min-height:240px}}

/* ---------- 3. what we do (dark) ---------- */
.sx-dark{color:#fff;background:radial-gradient(ellipse 50% 40% at 100% 0%,rgba(200,16,46,.22),transparent 70%),linear-gradient(180deg,#0e0f12,#141519)}
.sx-dark::after{content:"";position:absolute;right:0;top:0;width:46%;height:46%;background:radial-gradient(circle,rgba(255,255,255,.2) 1px,transparent 1.6px) 0 0/16px 16px;-webkit-mask-image:radial-gradient(ellipse at 100% 0%,#000,transparent 70%);mask-image:radial-gradient(ellipse at 100% 0%,#000,transparent 70%);pointer-events:none;opacity:.5}
.sx-dark .wrapx{position:relative;z-index:1}
.sx-dark p{color:#b4b8c0}
.what-lead{font-size:1.1rem;color:#ff8697!important;max-width:44em}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}
.svc{position:relative;padding:22px 22px 20px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));display:flex;flex-direction:column;transition:border-color .25s,background .25s,transform .25s}
.svc:hover{border-color:rgba(255,90,112,.7);background:linear-gradient(160deg,rgba(200,16,46,.18),rgba(255,255,255,.02));transform:translateY(-3px)}
.svc-n{font-family:var(--font-head);font-size:.82rem;font-weight:600;color:#ff7a8c;margin-bottom:8px;display:block}
.svc-h{display:flex;gap:16px;align-items:center;margin-bottom:14px}
.svc-h .i{width:44px;height:44px;color:#ff5a70;stroke-width:1.4}
.svc h3{font-size:1rem;font-weight:600;line-height:1.3;margin:0;letter-spacing:-.01em}
.svc p{font-size:.88rem;line-height:1.6;margin:0 0 16px;flex:1}
.svc a{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;color:#ff7a8c}
.svc a .i{width:15px;height:15px;transition:transform .2s}.svc a:hover .i{transform:translateX(3px)}
.svc a::after{content:"";position:absolute;inset:0}
@media(max-width:1200px){.services{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.services{grid-template-columns:1fr}}

/* ---------- 4. why ---------- */
.why{display:grid;grid-template-columns:minmax(0,.98fr) minmax(0,2fr);gap:clamp(24px,3.5vw,48px);align-items:stretch}
.why-left{display:flex;flex-direction:column}
.why-left p{font-size:1.05rem;color:#3a3e46;max-width:24em}
.why-media{flex:1;min-height:320px;margin-top:28px;border-radius:16px}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.why-card{padding:26px 24px 28px}
.why-card .ico-c{width:64px;height:64px;margin-bottom:22px}.why-card .ico-c .i{width:32px;height:32px}
.why-card h3{font-size:1.15rem;font-weight:700;line-height:1.25;margin:0}
.why-card .bar{margin:14px 0 16px}
.why-card p{font-size:.9rem;line-height:1.65;margin:0}
@media(max-width:1200px){.why{grid-template-columns:1fr}.why-media{min-height:260px;flex:none}}
@media(max-width:900px){.why-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.why-grid{grid-template-columns:1fr}}

/* ---------- 5. technology ---------- */
.tech{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(24px,3vw,44px);align-items:stretch}
.tech h2 em{display:block}
.tech-lead{font-size:1.02rem;max-width:40em}
.tech h3.cap{font-size:1rem;font-weight:700;margin:26px 0 14px}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.chip{display:flex;align-items:center;gap:14px;padding:14px 14px;background:#fff;border:1px solid #e8e9ee;border-radius:10px;font-size:.88rem;line-height:1.35;color:#2d3037}
.chip .ico-c{width:46px;height:46px;border-radius:10px}.chip .ico-c .i{width:23px;height:23px}
.tech-media{min-height:380px;border-radius:16px}
.enabler{display:flex;align-items:center;gap:26px;margin-top:34px;padding:24px 32px;border-radius:14px;background:linear-gradient(90deg,#fdeef0,#f3f4f7);border:1px solid #ecdfe2}
.enabler .i{width:56px;height:56px;color:var(--red);stroke-width:1.2}
.enabler div{border-left:1px solid #d9b8bf;padding-left:26px}
.enabler b{display:block;font-family:var(--font-head);font-size:1.25rem;color:var(--ink);margin-bottom:4px}
.enabler span{color:#4e535c}
@media(max-width:1200px){.tech{grid-template-columns:1fr}.tech-media{min-height:260px;order:-1}}
@media(max-width:900px){.chips{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.chips{grid-template-columns:1fr}.enabler{flex-direction:column;align-items:flex-start;padding:22px}.enabler div{border:0;padding:0}}

/* ---------- 6. purpose / standards / leadership ---------- */
.purpose{position:relative;overflow:hidden;background:linear-gradient(100deg,#0d0e11 0%,#17181d 60%,#2a1218 100%);color:#fff}
.purpose .wrapx{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:30px;align-items:center;min-height:300px;padding-top:56px;padding-bottom:56px}
.purpose .kicker{color:#fff;margin-bottom:22px}
.purpose p{margin:0;color:#fff;font-family:var(--font-head);font-weight:600;font-size:clamp(1.25rem,2vw,1.8rem);line-height:1.3;letter-spacing:-.015em;max-width:24em}
.purpose p em{font-style:normal;color:#ff6f84}
.purpose p small{display:block;margin-top:16px;font-size:.95rem;font-weight:400;line-height:1.55;color:#c4c7ce;letter-spacing:0;max-width:26em}
.purpose-media{align-self:stretch;min-height:220px;border-radius:14px;background:linear-gradient(135deg,#25272d,#17181c)}
.lead-box{margin-top:44px;padding:clamp(22px,3vw,40px);border-radius:18px;background:linear-gradient(135deg,#fdeef0 0%,#f3f4f7 60%);border:1px solid #ecdfe2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:34px;align-items:center}
.lead-box .kicker{font-size:.66rem;margin-bottom:18px}
.lead-box h2{font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.1}
.lead-box h2 em{display:block}
.lead-box p{font-size:1rem;max-width:26em}
.lead-btns{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}
.leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.leader{background:#fff;border-radius:12px;padding:10px 10px 16px;text-align:center;box-shadow:0 10px 30px -18px rgba(20,21,26,.3)}
.leader img{width:100%;aspect-ratio:1/1.05;object-fit:cover;object-position:center 20%;border-radius:8px;display:block}
.leader b{display:block;font-family:var(--font-head);font-size:.95rem;color:var(--ink);margin-top:12px}
.leader span{font-size:.84rem;color:#6a6f78}
.cp{margin-top:22px;border:1px solid #e1e3e8;border-radius:14px;background:#fff}
.cp-body{padding:4px 26px 28px}
.cp-body h4{font-size:.95rem;margin:22px 0 14px}
.cp-certs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.cp-certs figure{margin:0}
.cp-certs .cert-frame{border:1px solid #e1e3e8;border-radius:8px;overflow:hidden;background:#f6f7f9}
.cp-certs .cert-frame img{object-fit:contain;background:#fff}
.cp-certs figcaption{margin-top:10px;font-size:.82rem;color:#656a73;line-height:1.4}
.cp-certs figcaption b{display:block;color:var(--ink);font-size:.88rem}
.cp-pol{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cp-pol a{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #e1e3e8;border-radius:10px;font-size:.86rem;font-weight:600;color:var(--ink);line-height:1.35}
.cp-pol a:hover{border-color:var(--red);color:var(--red)}
.cp-pol .pdf{font-size:.66rem;font-weight:800;letter-spacing:.06em;color:#fff;background:var(--red);border-radius:5px;padding:5px 7px;flex:none}
@media(max-width:1100px){.lead-box{grid-template-columns:1fr}.purpose .wrapx{grid-template-columns:1fr}.cp-certs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.cp-pol{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.cp-pol,.leaders{grid-template-columns:1fr}.leaders{max-width:260px}}

/* ---------- 7. selected work ---------- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;margin-bottom:34px}
.sec-head>div{max-width:52em}
.sec-head p{font-size:1.02rem}
.pj-wrap{position:relative}
.pj-track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 2px 18px;scroll-behavior:smooth}
.pj-track::-webkit-scrollbar{display:none}
.pj:hover{transform:translateY(-4px);box-shadow:0 22px 40px -22px rgba(20,21,26,.45)}
.pj-ctrl{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:10px}
.pj-ctrl button.arr{width:34px;height:34px;border-radius:50%;border:1px solid #3a3e46;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .2s,color .2s}
.pj-ctrl button.arr:hover:not(:disabled){background:var(--ink);color:#fff}
.pj-ctrl button.arr:disabled{opacity:.35;cursor:default}
.pj-ctrl .i{width:16px;height:16px}
.dots{display:flex;gap:8px}
.dots button{width:9px;height:9px;border-radius:50%;border:0;background:#c4c8d0;padding:0;cursor:pointer;transition:background .2s,transform .2s}
.dots button[aria-current="true"]{background:var(--red);transform:scale(1.25)}

/* ---------- 8. gallery ---------- */
.gal{display:grid;gap:16px}
.gal-r1,.gal-r2{display:grid;gap:16px}
.gal-r1{grid-template-columns:2.1fr 1fr 1fr}
.gal-r2{grid-template-columns:repeat(4,1fr)}
.gl{position:relative;display:block;border-radius:12px;overflow:hidden;min-height:250px;background:linear-gradient(135deg,#2a2c33,#16171b);isolation:isolate}
.gal-r1 .gl{min-height:300px}
.gl .ph-i{position:absolute;inset:0;display:grid;place-items:start center;padding-top:64px;color:#4c505a;z-index:-2}
.gl .ph-i .i{width:56px;height:56px;stroke-width:1.1}
.gl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.gl::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 35%,rgba(10,11,14,.92) 100%)}
.gl-cap{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:14px;padding:18px 18px;color:#fff}
.gl-cap>.i{width:30px;height:30px;color:#fff;stroke-width:1.5}
.gl-cap div{flex:1;font-size:.82rem;line-height:1.4;color:#d4d7de}
.gl-cap b{display:block;font-family:var(--font-head);font-size:.95rem;color:#fff;margin-bottom:2px}
.gl-go{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,255,255,.8);display:grid;place-items:center;transition:background .2s,border-color .2s}
.gl-go .i{width:16px;height:16px}
.gl:hover .gl-go{background:var(--red);border-color:var(--red)}
.gl::after{content:"";position:absolute;inset:0;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
@media(max-width:1100px){.gal-r1{grid-template-columns:1fr 1fr}.gal-r1 .gl:first-child{grid-column:1/-1}.gal-r2{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.gal-r1,.gal-r2{grid-template-columns:1fr}}

/* ---------- footer ---------- */
footer.ft{display:block;background:radial-gradient(ellipse 40% 60% at 100% 0%,rgba(200,16,46,.2),transparent 70%),linear-gradient(180deg,#0e0f12,#0a0b0d);color:#c4c7ce;padding:0;border-top:3px solid var(--red)}
footer.ft .ft-in{max-width:1360px;margin:0 auto;padding:0 clamp(20px,3.6vw,56px);display:block}
.ft a{color:inherit}
.ft-main{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:0;padding:64px 0 48px}
.ft-col{padding:0 22px;border-left:1px solid rgba(255,255,255,.1)}
.ft-col:first-child{padding-left:0;border-left:0}.ft-col:last-child{padding-right:0}
.ft-brand img{height:52px;width:auto;display:block;margin-bottom:22px}
.ft-brand p{color:#aeb2bb;font-size:.92rem;line-height:1.7;margin:0 0 20px}
.ft-tag{display:flex;flex-wrap:nowrap;align-items:center;gap:0;white-space:nowrap;font-family:var(--font-head);font-size:.68rem;font-weight:700;letter-spacing:.1em;color:#ff5a70;margin-bottom:22px}
.ft-tag span+span::before{content:"|";color:#555a65;margin:0 .85em;font-weight:400;letter-spacing:0}
.ft-soc{display:flex;gap:12px}
.ft-soc a{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;transition:background .2s}
.ft-soc a:hover{background:var(--red)}
.ft-soc svg{width:19px;height:19px}
.ft h4{font-family:var(--font-head);font-size:1.15rem;font-weight:700;color:#fff;margin:0 0 6px;letter-spacing:-.01em}
.ft h4::after{content:"";display:block;width:34px;height:3px;border-radius:2px;background:var(--red);margin:10px 0 16px}
.ft ul{list-style:none;margin:0;padding:0}
.ft-links li{border-bottom:1px solid rgba(255,255,255,.07)}
.ft-links a{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:.88rem;color:#c4c7ce;transition:color .2s,padding .2s}
.ft-links a .i{width:13px;height:13px;color:#ff5a70}
.ft-links a:hover{color:#fff;padding-left:4px}
.ft-ct li{display:flex;gap:16px;margin-bottom:20px;font-size:.88rem;line-height:1.6;color:#c4c7ce}
.ft-ct .ci{display:grid;place-items:center;width:42px;height:42px;border:1.5px solid #ff5a70;border-radius:50%;color:#ff5a70;flex:none}
.ft-ct .ci .i{width:19px;height:19px}
.ft-ct a:hover{color:#fff}
.ft-mid{display:grid;grid-template-columns:1fr 1fr 1.1fr 1.1fr;align-items:center;gap:0;padding:26px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}
.ft-mid>div{display:flex;align-items:center;gap:16px;padding:0 24px;border-left:1px solid rgba(255,255,255,.1)}
.ft-mid>div:first-child{padding-left:0;border:0}
.ft-mid b{display:block;font-family:var(--font-head);color:#fff;font-size:.9rem;margin-bottom:2px}
.ft-mid span{font-size:.8rem;color:#9aa0ab;line-height:1.4}
.ft-mid .i{width:42px;height:42px;color:#fff;stroke-width:1.2}
.ft-bot{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:22px 0 26px;font-size:.84rem;color:#9aa0ab}
.ft-bot nav{display:flex;gap:0;align-items:center}
.ft-bot nav a{padding:0 20px;border-left:1px solid rgba(255,255,255,.15)}
.ft-bot nav a:first-child{border:0}
.ft-bot nav a:hover{color:#fff}
.ft-top{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border:1.5px solid #ff5a70;border-radius:999px;color:#fff;font-weight:600;font-size:.86rem;transition:background .2s}
.ft-top:hover{background:var(--red)}
.ft-top .i{width:16px;height:16px}
@media(max-width:1200px){.ft-main{grid-template-columns:1.3fr 1fr 1.1fr;row-gap:44px}.ft-mid{grid-template-columns:1fr 1fr;row-gap:22px}.ft-mid>div:nth-child(3){padding-left:0;border-left:0}}
@media(max-width:760px){.ft-main{grid-template-columns:1fr 1fr}.ft-col{border:0;padding:0}.ft-brand{grid-column:1/-1}.ft-mid{grid-template-columns:1fr}.ft-mid>div{border:0;padding:0}}
@media(max-width:520px){.ft-main{grid-template-columns:1fr}.ft-bot{flex-direction:column;align-items:flex-start}.ft-bot nav a{padding:0 14px}.ft-bot nav a:first-child{padding-left:0}}

/* ---------- real ISO certificate photos ---------- */
.iso-photo img:hover{transform:translateY(-3px);box-shadow:0 14px 28px -12px rgba(0,0,0,.4)}
.ft-mid .ft-cert{width:58px;height:auto;aspect-ratio:595/842;object-fit:contain;background:#fff;border-radius:3px;flex:none;box-shadow:0 6px 16px -6px rgba(0,0,0,.6);cursor:zoom-in;transition:transform .25s}
.ft-mid .ft-cert:hover{transform:scale(1.06)}
.ft-bot{justify-content:space-between}
/* footer social handles */
.ft-soc{flex-direction:column;gap:10px;align-items:flex-start}
.ft-soc a{display:flex;align-items:center;gap:12px;width:auto;height:auto;border-radius:0;background:none;color:#cfd3da;font-size:.9rem;transition:color .2s}
.ft-soc a:hover{background:none;color:#fff}
.ft-soc .so-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.08);flex:none;transition:background .2s}
.ft-soc a:hover .so-ico{background:var(--red)}
.ft-soc .so-ico svg{width:18px;height:18px}
.ft-soc .so-txt{display:flex;flex-direction:column;line-height:1.25;word-break:break-all}
.ft-soc .so-txt small{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#8d93a0}

/* ---------- capability pages ---------- */
.dd-menu a[aria-current]{color:var(--red);font-weight:600}
.sx-white{background:#fff}
.cp-hero{position:relative;overflow:hidden;color:#fff;padding:clamp(112px,11vw,148px) 0 0;background:radial-gradient(ellipse 55% 75% at 88% 25%,rgba(200,16,46,.30),transparent 70%),radial-gradient(ellipse 40% 50% at 0% 100%,rgba(200,16,46,.12),transparent 70%),linear-gradient(180deg,#0e0f12,#15161a)}
.cp-hero::after{content:"";position:absolute;right:0;top:0;width:46%;height:60%;background:radial-gradient(circle,rgba(255,255,255,.18) 1px,transparent 1.6px) 0 0/16px 16px;-webkit-mask-image:radial-gradient(ellipse at 100% 0%,#000,transparent 70%);mask-image:radial-gradient(ellipse at 100% 0%,#000,transparent 70%);pointer-events:none}
.cp-hero .wrapx{position:relative;z-index:1}
.cp-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,64px);align-items:center;padding-bottom:clamp(36px,4.5vw,60px)}
.cp-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;color:#aeb2bb;margin-bottom:26px}
.cp-crumb a:hover{color:#fff}.cp-crumb .i{width:13px;height:13px}.cp-crumb span{color:#fff}
.cp-hero h1{text-wrap:balance;font-family:var(--font-head);font-weight:600;font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.12;letter-spacing:-.025em;margin:0 0 22px;color:#fff}
.cp-hero h1 em{display:block;font-style:normal;color:#ff5a70}
.cp-lead{font-size:clamp(1rem,.5vw + .9rem,1.18rem);line-height:1.65;color:#c4c7ce;max-width:34em;margin:0 0 30px}
.cp-actions{display:flex;flex-wrap:wrap;gap:16px}
.cp-vis{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#23252b,#16171b);box-shadow:0 30px 60px -30px rgba(0,0,0,.8);isolation:isolate}
.cp-ph{position:absolute;inset:0;z-index:-1}
.cp-ph::before,.cp-ph::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(255,90,112,.28)}
.cp-ph::before{width:58%;aspect-ratio:1}.cp-ph::after{width:86%;aspect-ratio:1;border-color:rgba(255,255,255,.07)}
.cp-ph .i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30%;height:30%;color:#ff5a70;stroke-width:1.1;filter:drop-shadow(0 0 22px rgba(255,90,112,.5))}
.cp-vis img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cp-flow{border-top:1px solid rgba(255,255,255,.12)}
.cp-flow ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between}
.cp-flow li{display:flex;align-items:center;gap:10px;padding:20px 22px;font-family:var(--font-head);font-weight:500;font-size:.92rem;color:#e8eaee}
.cp-flow li:first-child{padding-left:0}.cp-flow li:last-child{padding-right:0}
.cp-flow li+li{border-left:1px solid rgba(255,255,255,.12)}
.cp-flow .i{width:22px;height:22px;color:#ff5a70}
.cp-ico{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:rgba(200,16,46,.08);border:1px solid rgba(200,16,46,.2);color:var(--red);margin-bottom:14px}
.cp-ico .i{width:26px;height:26px;stroke-width:1.5}.cp-ico.sm{width:46px;height:46px}.cp-ico.sm .i{width:22px;height:22px}
.cp-exp{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(28px,4vw,64px);align-items:center}
.cp-pills{display:grid;grid-template-columns:repeat(4,1fr)}
.cp-pill{padding:6px 22px;border-left:1px solid #e1e3e8}
.cp-pill h3{font-size:.98rem;font-weight:700;margin:0 0 6px}
.cp-pill p{font-size:.86rem;line-height:1.55;margin:0}
.cp-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.cp-chips span{--c:var(--red);display:inline-flex;align-items:center;gap:10px;padding:7px 15px 7px 7px;border:1px solid #dcdee3;background:#fff;border-radius:12px;font-family:var(--font-head);font-weight:600;font-size:.86rem;color:var(--ink);transition:transform .25s,border-color .25s,box-shadow .25s}
.cp-chips span i{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:color-mix(in srgb,var(--c) 11%,#fff);flex:none;transition:transform .3s}
.cp-chips span svg{width:24px;height:24px;display:block}
.cp-chips span:hover{transform:translateY(-2px);border-color:var(--c);box-shadow:0 10px 22px -16px var(--c)}
.cp-chips span:hover i{transform:scale(1.08) rotate(-4deg)}
.cp-note{display:block;color:#7b7f87;font-size:.82rem}
.cp-ben{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:34px}
.cp-ben-i{padding:22px 18px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));transition:border-color .25s,transform .25s}
.cp-ben-i:hover{border-color:rgba(255,90,112,.7);transform:translateY(-3px)}
.cp-ben-i .i{width:34px;height:34px;color:#ff5a70;stroke-width:1.4;margin-bottom:16px}
.sx-dark .cp-ben-i p{color:#eceef2;font-size:.95rem;line-height:1.45;margin:0;font-family:var(--font-head);font-weight:500}
.cp-models{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cp-model{background:#fff;border:1px solid #e6e8ed;border-radius:14px;padding:22px 18px}
.cp-model h3{font-size:.98rem;font-weight:700;margin:0 0 8px}
.cp-model p{font-size:.86rem;line-height:1.55;margin:0}
.cp-cta{position:relative;overflow:hidden;border-radius:18px;padding:clamp(26px,3.2vw,42px) clamp(24px,3.6vw,52px);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px 40px;margin-top:clamp(22px,3vw,34px);background:radial-gradient(ellipse 60% 120% at 100% 100%,rgba(200,16,46,.5),transparent 70%),linear-gradient(135deg,#1a1b20,#0e0f12)}
.cp-cta-t{display:flex;flex-direction:column;gap:10px;max-width:46em}
.cp-cta-a{flex:none}
.sx .cp-cta h2{color:#fff;margin:0;font-size:clamp(1.6rem,2.4vw,2.2rem)}
.sx .cp-cta p{color:#c4c7ce;margin:0}
.cp-cta .hx-btn{margin:0}
.cp-rel-i:hover{border-color:var(--red);transform:translateY(-3px);box-shadow:0 18px 34px -24px rgba(200,16,46,.5)}
.cp-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid #dfe1e6;padding-top:26px;margin-top:clamp(28px,3.4vw,44px)}
.cp-nav a{display:flex;flex-direction:column;gap:4px;padding:6px 4px}
.cp-nav a.r{text-align:right;align-items:flex-end}
.cp-nav small{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:#7b7f87}
.cp-nav small .i{width:14px;height:14px}
.cp-nav b{font-family:var(--font-head);font-size:1.02rem;color:var(--ink);transition:color .2s}
.cp-nav a:hover b{color:var(--red)}
/* shared section header: title left, intro right */
.sx-tight{padding:clamp(40px,4.6vw,64px) 0}
.cp-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(14px,3vw,56px);align-items:end;margin-bottom:clamp(24px,3vw,38px)}
.cp-head h2{margin:0}
.cp-head p{margin:0;max-width:40em}
/* delivery sequence + deliverables */
.cp-seq{list-style:none;margin:0 0 clamp(28px,3.4vw,44px);padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.cp-seq li{position:relative;padding-right:16px}
.cp-seq li:not(:last-child)::before{content:"";position:absolute;top:18px;left:48px;right:10px;height:2px;border-radius:2px;background:#cfd2d9}
.cp-seq .n{position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;margin-bottom:14px;border-radius:50%;background:var(--red);color:#fff;font:700 .85rem var(--font-head)}
.cp-seq b{display:block;font-family:var(--font-head);font-size:.98rem;color:var(--ink);margin-bottom:4px}
.cp-seq small{display:block;font-size:.82rem;line-height:1.5;color:#6b6f76}
.sx .cp-sub{font-family:var(--font-head);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#6b6f76;margin:0 0 14px}
.cp-dgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cp-dgrid li{display:flex;flex-direction:column;gap:4px;padding:17px 22px;background:#fff;border:1px solid #e6e8ed;border-left:3px solid var(--red);border-radius:12px}
.cp-dgrid b{font-family:var(--font-head);font-size:.98rem;color:var(--ink)}
.cp-dgrid span{font-size:.9rem;line-height:1.5;color:#5b606a}
/* tools band */
.cp-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:clamp(24px,4vw,64px);align-items:center}
.cp-toolbar .kicker{margin-bottom:20px}
.cp-toolbar h2{font-size:clamp(1.5rem,2.2vw,2.05rem);margin:0 0 10px}
.cp-toolbar p{margin:0}
/* related work thumbnails */
.cp-rel-i:hover .cp-rel-img img{transform:scale(1.04)}
@media(max-width:1100px){
 .cp-hero-grid,.cp-exp,.cp-head,.cp-toolbar{grid-template-columns:1fr}
 .cp-vis{aspect-ratio:16/9;max-width:640px}
 .cp-pills{grid-template-columns:repeat(2,1fr);gap:22px 0}
 .cp-seq{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 0}
 .cp-seq li::before{display:none}
 .cp-ben{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
 .cp-flow ul{display:grid;grid-template-columns:repeat(3,1fr)}
 .cp-flow li{padding:14px 4px;border:0!important;font-size:.8rem;gap:7px}.cp-flow li:first-child{padding-left:4px}.cp-flow .i{width:18px;height:18px}
 .cp-seq{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cp-dgrid,.cp-models{grid-template-columns:1fr}
 .cp-cta{flex-direction:column;align-items:flex-start}.cp-cta-a{width:100%}
 .cp-ben{grid-template-columns:repeat(2,1fr)}
 .cp-pills{grid-template-columns:1fr}.cp-pill{padding:4px 0 4px 18px}
 .cp-nav{grid-template-columns:1fr}.cp-nav a.r{text-align:left;align-items:flex-start}
}
@media(max-width:420px){.cp-ben{grid-template-columns:1fr}}

/* typewriter block in the redesigned footer */
.ft-brand .ft-type{margin:0 0 24px}
.ft-brand .type-line{min-height:2.9em;line-height:1.45;margin-bottom:14px}
.ft-brand .ft-type p{margin:0;color:#9a9ca1}

/* ---------- homepage section images ---------- */
/* Who We Are: dark showcase card (sits beside the dark "Digital solutions" result card) */
.who-media{background:linear-gradient(135deg,#12151a,#0a0b0e);border:1px solid #23262d;box-shadow:0 26px 50px -30px rgba(20,21,26,.6)}
.who-media img{inset:auto;left:0;top:50%;width:100%;height:auto;transform:translateY(-50%);cursor:zoom-in;-webkit-mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(180deg,transparent,#000 10%,#000 90%,transparent)}

/* Why SysReforms: team photo, soft brand-dark fade at the foot */
.why-media{box-shadow:0 26px 50px -32px rgba(20,21,26,.55)}
.why-media img{object-position:57% 50%}
.why-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 58%,rgba(14,15,18,.38)),linear-gradient(90deg,rgba(200,16,46,.10),transparent 45%)}
/* Technology: tall extended version on desktop, square original on tablet/phone */
.tech-media{border:1px solid #e1e3e8;box-shadow:0 30px 60px -36px rgba(20,21,26,.45)}
.tech-media img{object-fit:contain}
@media(min-width:1201px){.tech-media img{object-fit:cover;object-position:50% 50%}}
@media(max-width:1200px){
 .why-media{min-height:0;aspect-ratio:16/9}
 .tech-media{min-height:0;aspect-ratio:1/1;width:100%;max-width:560px;margin:0 auto}
}
@media(max-width:1100px){.who-media{min-height:0;aspect-ratio:1024/623;width:100%;max-width:780px;margin:0 auto}}

@media(max-width:820px){.who-media::after{display:none}}

/* ---------- 9. project cards: testimonial link, deployment map, VAPT page, project-page testimonial button ---------- */
.pj-testi:hover{background:var(--red);border-color:var(--red);color:#fff}
.pj-testi:hover .i{color:#fff}
#all-projects{padding-top:clamp(40px,5vw,70px)}
.deploy-map{margin:0;border:1px solid #e8e9ee;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 14px 34px -22px rgba(20,21,26,.35)}
.deploy-map img{display:block;width:100%;height:auto}
.pj-testi-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:11px 16px;border:1.5px solid var(--red);border-radius:4px;color:var(--red);font-weight:700;font-size:.9rem;transition:.2s}
.pj-testi-btn:hover{background:var(--red);color:#fff}
.pj-testi-btn svg{width:16px;height:16px}
.pj-slot.vis{border:1px solid var(--line);background:#0b1220}
.pj-slot.vis img{cursor:default;object-fit:cover}
.vapt-flow{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;counter-reset:v}
.vapt-flow li{counter-increment:v;position:relative;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:6px;padding:14px 12px;font-size:.82rem;line-height:1.4;color:var(--grey)}
.vapt-flow li::before{content:counter(v,decimal-leading-zero);display:block;font:800 1.1rem var(--font-head);color:var(--red);margin-bottom:4px}
.vapt-flow b{display:block;color:var(--ink);font-size:.9rem;margin-bottom:3px}
@media(max-width:900px){.vapt-flow{grid-template-columns:repeat(2,1fr)}}

/* ---------- 10. new homepage hero photo + purpose image ---------- */
.hx{background:#0a0507}
.hx-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right center}
.hx-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,12,.9) 0%,rgba(6,8,12,.72) 36%,rgba(6,8,12,.25) 58%,rgba(6,8,12,0) 72%)}
@media(max-width:900px){.hx-shade{background:linear-gradient(180deg,rgba(8,4,6,.82),rgba(8,4,6,.6))}}
.purpose-media{padding:0;overflow:hidden;background:#f4f2f1;display:block;align-self:center;min-height:0;box-shadow:0 24px 60px -28px rgba(0,0,0,.8)}
.purpose-media img{position:static;inset:auto;display:block;width:100%;height:auto;object-fit:cover}

/* ---------- 11. testimonials scroll cards ---------- */
.ts{flex:0 0 calc((100% - 44px)/3);scroll-snap-align:start;display:flex;flex-direction:column;background:#fff;border:1px solid #e8e9ee;border-top:3px solid var(--red);border-radius:12px;padding:24px 24px 22px;box-shadow:0 14px 34px -22px rgba(20,21,26,.35);transition:transform .25s,box-shadow .25s,border-color .25s}
.ts:hover{transform:translateY(-3px);box-shadow:0 20px 40px -24px rgba(200,16,46,.45)}
.ts.hl{border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.25),0 20px 40px -24px rgba(200,16,46,.45)}
.ts-logo{position:relative;width:110px;height:62px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;margin-bottom:16px}
.ts-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:8px;background:#fff}
.ts-pj{display:block;font-family:var(--font-head);font-weight:700;font-size:.84rem;line-height:1.4;color:var(--red);margin-bottom:12px}
.ts-q{display:block;height:34px;font-family:Georgia,serif;font-size:4.2rem;line-height:1;color:var(--red);opacity:.3;margin-bottom:4px}
.sx .ts p{flex:1;font-size:.9rem;line-height:1.65;color:#4e535c;margin:0 0 18px}
.ts-who{padding-top:14px;border-top:1px solid #edeef2}
.ts-who b{display:block;font-family:var(--font-head);color:var(--ink);font-size:.98rem}
.ts-who small{display:block;margin-top:3px;font-size:.8rem;line-height:1.45;color:#6b6f76}
@media(max-width:1000px){.ts{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:620px){.ts{flex-basis:88%}}
/* purpose image: cropped to the collage */
.purpose-media img{aspect-ratio:1050/790}

/* certificates panel: always open */
.cp-open .cp-title{font-family:var(--font-head);font-weight:700;font-size:1.05rem;color:var(--ink);margin:0;padding:22px 26px 0}
.cp-open .cp-body h4:first-child{margin-top:16px}
.pj-list{margin-top:8px}

/* technology page groups */
.tech-group+.tech-group{margin-top:64px}
.tg-head{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.tg-head h2{margin:0;font-size:clamp(1.35rem,2vw,1.75rem)}
.tg-head span{display:grid;place-items:center;min-width:32px;height:32px;padding:0 8px;border-radius:99px;background:#fbe9ec;color:var(--red);font-weight:800;font-size:.85rem}
.tg-head::after{content:"";flex:1;height:1px;background:var(--line)}

/* home: testimonials + repeat clients */
.sx .rc-claim{font-size:clamp(1rem,1.15vw,1.08rem);line-height:1.7;color:#3b3f47;max-width:52em;margin:0}
.sx .rc-claim strong{color:var(--red);font-weight:800;letter-spacing:.02em}
.sx .rc-claim b{color:var(--ink);font-weight:700}
.rc{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:6px 0 30px;padding:16px 18px;border-radius:14px;background:linear-gradient(135deg,#fdeef0,#fff 70%);border:1px solid #f1d6db}
.rc-tag{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;background:var(--red);color:#fff;font-family:var(--font-head);font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.rc-tag .i{width:17px;height:17px}
.rc-i{display:flex;align-items:center;gap:12px;padding:8px 16px 8px 8px;background:#fff;border:1px solid #ecdfe2;border-radius:12px}
.rc-logo{display:grid;place-items:center;width:64px;height:40px}
.rc-logo img{max-width:100%;max-height:100%;object-fit:contain}
.rc-i b{display:block;font-family:var(--font-head);font-size:.9rem;color:var(--ink);line-height:1.2}
.rc-i span:not(.rc-logo){display:block;font-size:.8rem;font-weight:700;color:var(--red)}
@media(max-width:700px){.rc-i{flex:1 1 calc(50% - 7px)}.rc-tag{width:100%;justify-content:center}}

/* merged governance framework (compact) */
.gov-m{margin:30px 0 26px}
.gov-m-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:16px}
.sx .gov-m-h h3{font-size:1.2rem;font-weight:700;margin:0}
.sx .gov-m-h p{margin:0;font-size:.92rem;color:#6a6f78}
.gov-ps{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.gov-p{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:18px 16px}
.gov-p .ico-c{width:44px;height:44px}.gov-p .ico-c .i{width:22px;height:22px}
.gov-p b{font-family:var(--font-head);font-size:.92rem;line-height:1.3;color:var(--ink)}
@media(max-width:1100px){.gov-ps{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.gov-ps{grid-template-columns:1fr 1fr}}
.sx h3.ts-head{font-size:clamp(1.3rem,2vw,1.7rem);font-weight:700;margin:4px 0 18px}

/* home: scrollable full project list */
.pj-scroll-wrap{position:relative}
.pj-scroll{max-height:720px;overflow-y:auto;padding:4px 14px 4px 2px;scrollbar-width:thin;scrollbar-color:var(--red) #eceef2;overscroll-behavior:contain}
.pj-scroll::-webkit-scrollbar{width:10px}
.pj-scroll::-webkit-scrollbar-track{background:#eceef2;border-radius:99px}
.pj-scroll::-webkit-scrollbar-thumb{background:var(--red);border-radius:99px;border:2px solid #eceef2}
.pj-scroll .list-row.pj-row:hover{transform:none}
.pj-scroll-wrap::after{content:"";position:absolute;left:0;right:14px;bottom:38px;height:60px;pointer-events:none;background:linear-gradient(transparent,rgba(243,244,247,.95))}
.pj-scroll-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0 0;font-size:.85rem;font-weight:600;color:#6b6f76}
.pj-scroll-hint .i{width:16px;height:16px;transform:rotate(90deg);color:var(--red)}
@media(max-width:700px){.pj-scroll{max-height:640px}}

/* ---------- cybersecurity capability page ---------- */
.cp-flow-9 li{padding:18px 12px;font-size:.86rem;gap:8px}
.cp-flow-9 .i{width:20px;height:20px}
@media(max-width:1200px){.cp-flow-9 ul{display:grid;grid-template-columns:repeat(5,1fr)}.cp-flow-9 li{border:0!important;padding:12px 4px}}
@media(max-width:700px){.cp-flow-9 ul{grid-template-columns:repeat(3,1fr)}}
.cp-pills-5{grid-template-columns:repeat(5,1fr)}
.cp-pills-5 .cp-pill{padding:6px 16px}.cp-pills-5 h3{font-size:.92rem;line-height:1.35}
@media(max-width:1100px){.cp-pills-5{grid-template-columns:repeat(3,1fr);gap:22px 0}}
@media(max-width:600px){.cp-pills-5{grid-template-columns:1fr 1fr}}
.cs-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.cs-two h2{font-size:clamp(1.5rem,2.2vw,2.05rem)}
.cs-checks,.cs-tools{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.cs-checks li{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:#fff;border:1px solid #e6e8ed;border-radius:12px}
.cs-checks li>.i{width:26px;height:26px;color:#fff;background:var(--red);border-radius:50%;padding:4px;flex:none;stroke-width:2.2}
.cs-checks b,.cs-tools b{display:block;font-family:var(--font-head);font-size:.98rem;color:var(--ink);margin-bottom:3px}
.cs-checks span,.cs-tools span:not(.cp-ico){display:block;font-size:.88rem;line-height:1.5;color:#5b606a}
.cs-tools li{display:flex;gap:14px;align-items:center;padding:14px 18px;background:#fff;border:1px solid #e6e8ed;border-left:3px solid var(--red);border-radius:12px}
.cs-tools .cp-ico{margin:0;flex:none}
.cs-vapt{list-style:none;margin:0 0 clamp(36px,4vw,56px);padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:10px;counter-reset:v}
.cs-vapt li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
.cs-vapt li:not(:last-child)::after{content:"";position:absolute;top:29px;left:calc(50% + 36px);right:calc(-50% + 36px);height:2px;background:#e3c5cb}
.cs-vapt-i{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#fff;border:2px solid var(--red);color:var(--red);box-shadow:0 8px 18px -12px rgba(200,16,46,.6)}
.cs-vapt-i .i{width:26px;height:26px}
.cs-vapt small{font:700 .7rem var(--font-head);letter-spacing:.1em;color:var(--red);margin-top:4px}
.cs-vapt b{font-family:var(--font-head);font-size:.86rem;line-height:1.3;color:var(--ink)}
@media(max-width:1000px){.cs-vapt{grid-template-columns:repeat(5,1fr);row-gap:26px}.cs-vapt li::after{display:none}}
@media(max-width:560px){.cs-vapt{grid-template-columns:repeat(3,1fr)}}
.sx .cs-h3{font-size:clamp(1.25rem,1.8vw,1.6rem);font-weight:700;margin:0 0 18px}
.cs-h3 em{font-style:normal;color:var(--red)}
.cs-recv{display:grid;gap:12px}
.cs-recv-i{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border:1px solid #e6e8ed;border-radius:12px;background:linear-gradient(180deg,#fff,#f8f8fa)}
.cs-recv-i .cp-ico{margin:0;flex:none}
.cs-recv-i b{display:block;font-family:var(--font-head);font-size:1rem;color:var(--ink);margin-bottom:6px}
.cs-recv-i ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.cs-recv-i li{font-size:.8rem;font-weight:600;color:#4e535c;background:#fff;border:1px solid #e1e3e8;border-radius:99px;padding:4px 10px}
.cs-post{padding:clamp(22px,2.6vw,32px);border-radius:16px;background:linear-gradient(135deg,#fdeef0,#f6f7f9 70%);border:1px solid #f1d6db}
.cs-post p{font-size:.95rem}
.cs-mini{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 18px}
.cs-mini li{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.9rem;color:var(--ink)}
.cs-mini .i{width:22px;height:22px;color:#fff;background:var(--red);border-radius:50%;padding:4px;flex:none;stroke-width:2.4}
.cs-ben .cp-ben-i h3{color:#fff;font-size:1rem;margin:0 0 6px}
.sx-dark .cs-ben .cp-ben-i p{font-family:inherit;font-weight:400;font-size:.86rem;line-height:1.5;color:#b9bdc6}
.cs-arch{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:12px}
.cs-arch-i{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 10px;border:1px solid #e6e8ed;border-radius:14px;background:#fff;text-align:center;transition:border-color .25s,transform .25s}
.cs-arch-i:hover{border-color:var(--red);transform:translateY(-3px)}
.cs-arch-i span{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#fbe9ec;color:var(--red)}
.cs-arch-i .i{width:24px;height:24px}
.cs-arch-i b{font-family:var(--font-head);font-size:.86rem;color:var(--ink);line-height:1.3}
@media(max-width:1100px){.cs-arch{grid-template-columns:repeat(5,1fr)}.cs-ben{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.cs-two{grid-template-columns:1fr}}
@media(max-width:560px){.cs-arch{grid-template-columns:repeat(3,1fr)}.cs-mini{grid-template-columns:1fr}.cs-ben{grid-template-columns:1fr 1fr}}

/* v3 */
.sx h3.reach-h{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#5b606a;margin:34px 0 14px}
/* ---------- v3 accessibility ---------- */
.skip{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;transition:top .2s}
.skip:focus{top:12px;outline:2px solid #fff;outline-offset:2px}
main{display:block}
/* readable accent text on dark backgrounds */
.page-hero .eyebrow,.team-section .eyebrow,.sx-dark .kicker,.purpose .kicker{color:#ff6b80}
.cp-note,.cf-note,.opt{color:#5f636b}
/* visible keyboard focus everywhere */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.sx-dark a:focus-visible,.sx-dark button:focus-visible,.ft a:focus-visible,.hx a:focus-visible,.cp-hero a:focus-visible,.cp-cta a:focus-visible{outline-color:#fff}
.pj-track:focus-visible,.pj-scroll:focus-visible{outline:3px solid var(--red);outline-offset:4px}
/* keyboard: open dropdown when focus moves inside it */
@media(min-width:981px){.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
.pj-chips span.live{color:#86efac;border-color:#86efac}

/* ---------- v3 mobile layout (≤700px) ---------- */
.m-more{display:none}
.m-cta{display:none}
@media(max-width:700px){
 /* swipe rows: proof cards, certificates, leaders, gallery */
 #impact .stats,.cp-certs,.leaders,.gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:4px 2px 14px;margin:0 -2px;scrollbar-width:none;max-width:none}
 #impact .stats::-webkit-scrollbar,.cp-certs::-webkit-scrollbar,.leaders::-webkit-scrollbar,.gal::-webkit-scrollbar{display:none}
 #impact .stat{flex:0 0 62%;scroll-snap-align:start}#impact .stat-feat{grid-column:auto}
 .cp-certs figure{flex:0 0 62%;scroll-snap-align:start}
 .leader{flex:0 0 58%;scroll-snap-align:start}
 .gal-r1,.gal-r2{display:contents}
 .gl,.gal-r1 .gl{flex:0 0 80%;min-height:220px;scroll-snap-align:start}
 /* two-column capability + why cards with collapsible details */
 .services{grid-template-columns:1fr 1fr!important;gap:10px;margin-top:26px}
 .svc{padding:16px 14px 14px}.svc-n{font-size:.7rem}
 .svc-h{flex-direction:column;align-items:flex-start;gap:8px}.svc h3{font-size:.88rem}
 .why-grid{grid-template-columns:1fr 1fr!important;gap:10px}
 .why-card{padding:16px 14px}.why-card h3{font-size:.9rem}.why-card .ico-c{width:44px;height:44px;margin-bottom:12px}
 html.js .svc>p,html.js .why-card>p{display:none}
 html.js .svc.open>p,html.js .why-card.open>p{display:block;font-size:.82rem;margin:8px 0 10px}
 .m-more{display:inline-flex;align-items:center;gap:6px;margin:8px 0 6px;padding:0;border:0;background:none;font:600 .78rem var(--font-head),sans-serif;cursor:pointer;position:relative;z-index:2}
 .svc .m-more{color:#ffb3be}.why-card .m-more{color:var(--red)}
 .m-more::after{content:"+";font-size:1rem;line-height:1}.open>.m-more::after{content:"–"}
 .svc a{font-size:.78rem}
 /* reduced image heights */
 .who-media,.why-media,.tech-media{max-height:220px;overflow:hidden}
 .who-media img,.why-media img,.tech-media img{height:220px;width:100%;object-fit:cover}
 .chips{grid-template-columns:1fr 1fr!important;gap:8px}.chip{padding:10px;gap:8px;font-size:.78rem}.chip .ico-c{width:34px;height:34px}.chip .ico-c .i{width:18px;height:18px}
 /* testimonials: clamp long quotes */
 html.js .ts p.clamp{display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;flex:0 0 auto}
 .ts .m-more{color:var(--red);display:inline-flex;margin:-10px 0 14px}
 /* sticky call-to-action */
 .m-cta{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:90;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:12px;background:var(--red);color:#fff;font:700 .95rem var(--font-head),sans-serif;box-shadow:0 14px 30px -10px rgba(200,16,46,.6);transform:translateY(140%);transition:transform .3s}
 .m-cta.show{transform:none}
 .m-cta .i{width:18px;height:18px}
 body.has-mcta .ft{padding-bottom:80px}
}
@media(max-width:700px){
 .rc{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}
 .rc-tag{grid-column:1/-1}
 .rc-i{flex-direction:column;align-items:flex-start;gap:6px;padding:10px}
 .rc-logo{width:56px;height:30px;justify-items:start}
 .rc-i b{font-size:.82rem}.rc-i span:not(.rc-logo){font-size:.74rem}
}

img{height:auto}

/* headings: avoid one-word last lines */
h1,h2,h3,h4{text-wrap:balance}
p{text-wrap:pretty}
/* v4: homepage trims */
#impact .trust-top{grid-template-columns:1fr;max-width:860px}
#who-we-are .who-media{margin-top:26px;min-height:0;aspect-ratio:1024/623}
#who-we-are .who-top{align-items:start}
.tech-more{margin-top:22px}
#technology .tech{align-items:center}
@media(max-width:700px){#who-we-are .who-media{aspect-ratio:auto;height:220px;margin-top:22px}}
#who-we-are .who-top{align-items:center}
#who-we-are .who-right{margin-top:22px}
#who-we-are .who-media{margin-top:0}
/* ---------- gallery page ---------- */
.gf-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.gf-filters button{font:600 .85rem var(--font-head),sans-serif;padding:9px 16px;border-radius:99px;border:1px solid #d9dce2;background:#fff;color:var(--ink);cursor:pointer;transition:.2s}
.gf-filters button:hover{border-color:var(--red);color:var(--red)}
.gf-filters button.on{background:var(--red);border-color:var(--red);color:#fff}
.gf-grid{columns:3 320px;column-gap:20px}
.gf{break-inside:avoid;margin:0 0 20px;background:#fff;border:1px solid #e6e8ed;border-radius:14px;overflow:hidden;box-shadow:0 14px 30px -24px rgba(20,21,26,.45);transition:box-shadow .25s,transform .25s}
.gf:hover{transform:translateY(-3px);box-shadow:0 20px 40px -24px rgba(200,16,46,.45)}
.gf.is-hidden{display:none}
.gf.hl{outline:3px solid var(--red);outline-offset:3px}
.gf-open{display:block;width:100%;padding:0;border:0;background:#16171b;cursor:zoom-in;overflow:hidden}
.gf-open img{width:100%;height:auto;display:block;transition:transform .5s}
.gf:hover .gf-open img{transform:scale(1.03)}
.gf figcaption{display:flex;flex-direction:column;gap:6px;padding:14px 16px 16px}
.gf-org{display:inline-flex;align-items:center;gap:6px;font:800 .7rem var(--font-head),sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.gf-org .i{width:15px;height:15px}
.gf figcaption b{font-family:var(--font-head);font-size:.95rem;line-height:1.4;color:var(--ink)}
.gf figcaption small{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:#5b606a}
.gf figcaption small .i{width:14px;height:14px;color:var(--red)}
.gf-lb{position:fixed;inset:0;z-index:1000;background:rgba(10,10,12,.94);display:grid;grid-template-columns:64px 1fr 64px;align-items:center;padding:24px 10px}
.gf-lb[hidden]{display:none}
.gf-lb figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0}
.gf-lb img{max-width:100%;max-height:calc(100vh - 150px);border-radius:8px;object-fit:contain}
.gf-lb figcaption{color:#e8eaee;text-align:center;max-width:760px;font-size:.92rem;line-height:1.5}
.gf-lb figcaption b{color:#ff8496;font-family:var(--font-head);margin-right:6px}
.gf-lb figcaption span{color:#aeb2bb}
.gf-nav,.gf-x{border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;border-radius:50%;display:grid;place-items:center;font-size:2rem;line-height:1}
.gf-nav{width:48px;height:48px;justify-self:center}
.gf-nav:hover,.gf-x:hover{background:var(--red)}
.gf-x{position:absolute;top:16px;right:16px;width:44px;height:44px;font-size:1.8rem}
@media(max-width:700px){.gf-grid{columns:1}.gf-lb{grid-template-columns:44px 1fr 44px;padding:20px 4px}.gf-nav{width:38px;height:38px;font-size:1.6rem}}
.gl::before{background:linear-gradient(180deg,transparent 30%,rgba(10,11,14,.55) 55%,rgba(10,11,14,.95) 100%)}
/* gallery: row-wise grid keeps photos in sequence */
.gf-grid{columns:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.gf{margin:0}
.gf-open{aspect-ratio:4/3}
.gf-open img{height:100%;object-fit:cover}
@media(max-width:1000px){.gf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.gf-grid{grid-template-columns:1fr}}
.mq-group a.mq-nolink{cursor:default}
/* gallery: equal-size cards */
.gf-grid{align-items:stretch;grid-auto-rows:1fr}
.gf{display:flex;flex-direction:column;height:100%}
.gf figcaption{flex:1}
.gf figcaption b{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- compact phone layout (iPhone Pro Max & smaller) ---------- */
@media(max-width:700px){
 /* gallery page: 2 per row, compact captions */
 .gf-grid{grid-template-columns:1fr 1fr!important;gap:10px;grid-auto-rows:auto}
 .gf{border-radius:10px}
 .gf figcaption{padding:9px 10px 11px;gap:4px}
 .gf-org{font-size:.6rem;letter-spacing:.08em}.gf-org .i{width:12px;height:12px}
 .gf figcaption b{font-size:.78rem;line-height:1.35}
 .gf figcaption small{font-size:.7rem}.gf figcaption small .i{width:11px;height:11px}
 /* technology page: 3 per row, logo + name only */
 .tech-grid{grid-template-columns:repeat(3,1fr)!important;gap:8px}
 .tech-card{padding:14px 6px 12px;border-radius:12px}
 .tech-logo{width:48px;height:48px;border-radius:12px;margin-bottom:8px}.tech-logo svg{width:30px;height:30px}
 .tech-card .cat{font-size:.55rem;letter-spacing:.06em;margin-bottom:4px}
 .tech-card h3{font-size:.8rem;line-height:1.25}
 .tech-card p{display:none}
 .tech-group+.tech-group{margin-top:36px}.tg-head{margin-bottom:14px}
 /* project lists: slimmer rows */
 .pj-item{gap:6px;margin-bottom:10px}
 .pj-item>.logo-box{width:64px;height:40px}
 .list-row.pj-row{padding:14px 14px 14px 18px;gap:8px}
 .pj-row h3{font-size:.95rem;line-height:1.3}
 .pj-row small{font-size:.75rem}
 .list-row.pj-row>a{padding:6px 12px;font-size:.7rem}
 .pj-scroll{max-height:560px}
 /* testimonials + stat cards a touch smaller */
 .ts{padding:18px 16px 16px}.ts-logo{width:90px;height:50px;margin-bottom:12px}
 #impact .stat{flex-basis:48%;padding:16px 14px}
 .stat-n{font-size:1.9rem}.stat h3{font-size:.7rem}
 /* section spacing */
 .sx{padding:52px 0}
 section{padding:56px 0}
 .page-hero{padding-top:96px;padding-bottom:40px}
}
/* home projects: show 5, expand in place (no inner scroll box) */
.pj-collapsed>.pj-item:nth-child(n+6){display:none}
.pj-more-btn{display:flex;align-items:center;justify-content:center;gap:10px;margin:18px auto 0;padding:14px 28px;border-radius:99px;border:1.5px solid var(--red);background:#fff;color:var(--red);font:700 .95rem var(--font-head),sans-serif;cursor:pointer;transition:background .2s,color .2s}
.pj-more-btn:hover{background:var(--red);color:#fff}
.pj-more-btn .i{width:18px;height:18px;transform:rotate(90deg);transition:transform .25s}
.pj-more-btn[aria-expanded="true"] .i{transform:rotate(-90deg)}
/* SDH: 16:9 slides shown whole */
.pj-gallery-169{grid-template-columns:repeat(2,1fr)}
.pj-gallery-169 .pj-slot{aspect-ratio:16/9;border-style:solid}
.pj-gallery-169 .pj-slot img{object-fit:contain}
.pj-gallery-169 .pj-slot.main{grid-column:1/-1}
