/* Novapave WebNAS v1 · corporate site · theme: draft v3 (white, Novapave red, Archivo/Inter) */
:root{
  --red:#D4122A; --red-d:#A80E20; --red-soft:rgba(212,18,42,0.08);
  --ink:#17181C; --near:#0C0D10;
  --tx:#1E2126; --mut:#5C6470; --mut-2:#8A929E;
  --paper:#ffffff; --g1:#F5F6F8; --g2:#ECEEF1;
  --ln:#E3E6EA; --ln-2:#D3D8DE; --ln-dk:rgba(255,255,255,0.14);
  --maxw:1240px;
  --disp:'Archivo',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --body:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--body);background:var(--paper);color:var(--tx);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--red);color:#fff}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 44px}
@media(max-width:640px){.wrap{padding:0 20px}}
.band{padding:110px 0}
@media(max-width:720px){.band{padding:70px 0}}
.band.tight{padding:80px 0}
.grey{background:var(--g1);border-top:1px solid var(--ln);border-bottom:1px solid var(--ln)}
.dark{background:var(--near);color:#fff}
.dark h1,.dark h2,.dark h3,.dark h4{color:#fff}
.dark .kicker{color:#fff}
.dark .lede,.dark p{color:#B9C0CA}

h1,h2,h3,h4{font-family:var(--disp);font-weight:800;letter-spacing:-0.02em;color:var(--ink);line-height:1.06}
h2.big{font-size:clamp(30px,4.2vw,50px);max-width:20ch}
h3.mid{font-size:clamp(22px,2.4vw,30px)}
.kicker{font-family:var(--disp);font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:12px;margin-bottom:24px}
.kicker .n{color:var(--mut-2);font-weight:600}
.kicker::before{content:"";width:30px;height:3px;background:var(--red)}
.lede{color:var(--mut);font-size:clamp(16px,1.5vw,18.5px);line-height:1.65;max-width:60ch}
.lede+.lede{margin-top:16px}
.body p{color:var(--mut);font-size:16px;max-width:64ch}
.body p+p{margin-top:14px}

/* to-be-confirmed placeholders */
.tbc{background:rgba(212,18,42,0.07);border-bottom:1.5px dashed var(--red);color:inherit;padding:0 3px;cursor:help;white-space:normal}
.dark .tbc,.on-photo .tbc{background:rgba(255,255,255,0.12);border-bottom-color:#fff}

/* buttons */
.btn{font-family:var(--body);font-weight:600;font-size:14.5px;padding:14px 26px;border-radius:2px;cursor:pointer;border:1.5px solid transparent;display:inline-flex;align-items:center;gap:10px;transition:.2s;white-space:nowrap}
.btn svg{width:15px;height:15px}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-d)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ln-2)}
.btn-line:hover{border-color:var(--ink)}
.btn-wht{background:#fff;color:var(--ink)}
.btn-wht:hover{background:#eee}
.btn-wline{background:transparent;color:#fff;border-color:rgba(255,255,255,0.45)}
.btn-wline:hover{border-color:#fff;background:rgba(255,255,255,0.08)}
.btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14.5px;color:var(--red);margin-top:22px}
.more:hover{gap:12px}
.more svg{width:15px;height:15px;transition:.2s}
.dark .more{color:#fff}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .3s,border-color .3s,box-shadow .3s;border-bottom:1px solid transparent}
header.scrolled,header.solid{background:rgba(255,255,255,0.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--ln);box-shadow:0 2px 20px rgba(0,0,0,0.04)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand img{height:27px;width:auto;filter:brightness(0) invert(1);transition:filter .3s}
header.scrolled .brand img,header.solid .brand img{filter:none}
.navlinks{display:flex;align-items:center;gap:30px}
.navlinks a{font-size:14.5px;font-weight:500;color:rgba(255,255,255,0.86);transition:color .2s;position:relative}
.navlinks a:hover{color:#fff}
header.scrolled .navlinks a,header.solid .navlinks a{color:var(--mut)}
header.scrolled .navlinks a:hover,header.solid .navlinks a:hover{color:var(--ink)}
.navlinks a.on::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--red)}
.navlinks a.cta,header.scrolled .navlinks a.cta,header.solid .navlinks a.cta{color:#fff}
.navlinks a.cta::after{display:none}
.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,0.45);border-radius:4px;padding:8px;cursor:pointer}
.menu-toggle svg{width:20px;height:20px;stroke:#fff}
header.scrolled .menu-toggle,header.solid .menu-toggle{border-color:var(--ln-2)}
header.scrolled .menu-toggle svg,header.solid .menu-toggle svg{stroke:var(--ink)}
@media(max-width:1020px){
  .navlinks{position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fff;border-bottom:1px solid var(--ln);max-height:0;overflow:hidden;transition:max-height .3s ease;box-shadow:0 16px 30px rgba(0,0,0,0.1)}
  .navlinks.open{max-height:560px}
  .navlinks a,header.scrolled .navlinks a,header.solid .navlinks a{padding:15px 40px;border-top:1px solid var(--ln);color:var(--mut)}
  .navlinks a.on{color:var(--red)}
  .navlinks a.on::after{display:none}
  .navlinks a.cta{margin:14px 40px;justify-content:center;color:#fff;padding:14px}
  .menu-toggle{display:inline-flex}
}

/* home hero */
.hero{position:relative;min-height:94vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--near)}
.hero-img{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.hero-ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,11,14,0.62) 0%,rgba(10,11,14,0.25) 34%,rgba(10,11,14,0.45) 62%,rgba(10,11,14,0.92) 100%),linear-gradient(90deg,rgba(10,11,14,0.6),transparent 65%)}
.hero .wrap{position:relative;z-index:2;width:100%;padding-bottom:64px;padding-top:160px}
.hero .kicker{color:#fff}
.hero h1{color:#fff;font-size:clamp(40px,6.4vw,80px);line-height:1.0;letter-spacing:-0.03em;max-width:17ch;margin-bottom:24px}
.hero .lede{color:#DFE4EA;max-width:58ch;font-size:clamp(16.5px,1.8vw,20px)}

/* inner page hero */
.phero{position:relative;min-height:58vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--near)}
@media(max-width:720px){.phero{min-height:440px}}
.phero .hero-img{opacity:.9}
.phero .wrap{position:relative;z-index:2;width:100%;padding-top:150px;padding-bottom:56px}
.crumb{font-size:12.5px;color:rgba(255,255,255,0.75);margin-bottom:18px;letter-spacing:.02em}
.crumb a:hover{color:#fff}
.crumb span{margin:0 8px;opacity:.6}
.phero h1{color:#fff;font-size:clamp(38px,5.6vw,68px);letter-spacing:-0.03em;max-width:18ch;margin-bottom:18px}
.phero .lede{color:#DFE4EA;max-width:60ch}

/* red strip */
.strip{background:var(--red);color:#fff}
.strip-grid{display:flex;flex-wrap:wrap}
.strip .it{flex:1;min-width:200px;padding:22px 30px;border-right:1px solid rgba(255,255,255,0.18);display:flex;align-items:center;gap:14px}
.strip .it:last-child{border-right:none}
.strip .it svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.7;flex:0 0 auto}
.strip .it b{font-family:var(--disp);font-weight:700;font-size:14.5px;display:block;line-height:1.25}
.strip .it span{font-size:12px;color:rgba(255,255,255,0.85)}
@media(max-width:760px){.strip .it{min-width:50%;padding:18px 18px;border-bottom:1px solid rgba(255,255,255,0.18)}.strip .it:nth-child(2n){border-right:none}}

/* metrics */
.metrics{border-bottom:1px solid var(--ln)}
.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.metric{padding:52px 30px 48px;border-right:1px solid var(--ln)}
.metric:last-child{border-right:none}
.metric .c{font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin-bottom:14px}
.metric .v{font-family:var(--disp);font-weight:800;font-size:clamp(42px,5vw,64px);line-height:.92;color:var(--ink);letter-spacing:-0.03em}
.metric .v .u{color:var(--red);font-size:.42em;font-weight:800;margin-left:3px}
.metric .s{font-size:13.5px;color:var(--mut);margin-top:12px;max-width:26ch}
@media(max-width:820px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.metric{padding:34px 20px}.metric:nth-child(2n){border-right:none}.metric:nth-child(n+3){border-top:1px solid var(--ln)}}

/* split layouts */
.two{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end}
.two.top{align-items:start}
.two.mid{align-items:center}
@media(max-width:900px){.two{grid-template-columns:1fr;gap:28px}}
.media{position:relative}
.media img{width:100%;height:clamp(300px,40vw,520px);object-fit:cover;border-radius:3px}
.media.short img{height:clamp(260px,30vw,400px)}
.cap{position:absolute;left:0;bottom:0;background:var(--red);color:#fff;font-size:12.5px;font-weight:600;letter-spacing:.02em;padding:11px 18px;max-width:85%}
.badge{position:absolute;top:20px;left:20px;background:var(--red);color:#fff;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:8px 14px}

/* column rows with top rule */
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:56px;border-top:2px solid var(--ink)}
.cols.c2{grid-template-columns:1fr 1fr}
.cols.c4{grid-template-columns:repeat(4,1fr)}
.col{padding:30px 30px 10px 0;border-right:1px solid var(--ln)}
.col:not(:first-child){padding-left:30px}
.col:last-child{border-right:none;padding-right:0}
.col .k{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.col h4{font-size:20px;margin-bottom:9px}
.col p{font-size:15px;color:var(--mut)}
.dark .cols{border-top-color:#fff}
.dark .col{border-right-color:var(--ln-dk)}
@media(max-width:900px){.cols.c4{grid-template-columns:1fr 1fr}.cols.c4 .col:nth-child(2n){border-right:none}.cols.c4 .col:nth-child(3){padding-left:0}}
@media(max-width:760px){.cols,.cols.c2,.cols.c4{grid-template-columns:1fr}.col,.col:not(:first-child){border-right:none;border-bottom:1px solid var(--ln);padding:22px 0}.dark .col{border-bottom-color:var(--ln-dk)}}

/* solution cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
@media(max-width:900px){.cards{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--ln);border-radius:3px;overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.card:hover{box-shadow:0 18px 40px rgba(0,0,0,0.08);transform:translateY(-3px)}
.card img{width:100%;height:220px;object-fit:cover}
.card .in{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.card .k{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.card h4{font-size:21px;margin-bottom:10px}
.card p{font-size:15px;color:var(--mut);flex:1}
.dark .card{background:#15171B;border-color:var(--ln-dk)}
.dark .card h4{color:#fff}

/* numbered rows */
.rows{border-top:1px solid var(--ln);margin-top:44px}
.row{display:grid;grid-template-columns:60px 1fr 1.6fr;gap:28px;padding:28px 4px;border-bottom:1px solid var(--ln);align-items:baseline}
.row .idx{font-family:var(--disp);font-weight:800;color:var(--red);font-size:17px}
.row h4{font-size:20px}
.row p{color:var(--mut);font-size:15px}
.dark .rows,.dark .row{border-color:var(--ln-dk)}
@media(max-width:760px){.row{grid-template-columns:40px 1fr;gap:6px 14px}.row p{grid-column:1/-1}}

/* check list */
.checks{list-style:none}
.checks li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--ln)}
.checks li:first-child{padding-top:0}
.checks .chk{width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:var(--red-soft);display:flex;align-items:center;justify-content:center;margin-top:1px}
.checks .chk svg{width:15px;height:15px;stroke:var(--red);fill:none;stroke-width:2.4}
.checks h4{font-size:16.5px;margin-bottom:3px;font-weight:700}
.checks p{font-size:14.5px;color:var(--mut)}

/* timeline */
.tl{margin-top:56px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--ink)}
.tl .t{padding:26px 24px 26px 0;border-bottom:1px solid var(--ln)}
.tl .t:not(:nth-child(4n+1)){padding-left:24px;border-left:1px solid var(--ln)}
.tl .y{font-family:var(--disp);font-weight:800;font-size:28px;color:var(--red);letter-spacing:-0.02em}
.tl h4{font-size:16.5px;margin:8px 0 4px}
.tl p{font-size:14px;color:var(--mut)}
@media(max-width:900px){.tl{grid-template-columns:1fr 1fr}.tl .t:not(:nth-child(4n+1)){border-left:none;padding-left:0}.tl .t:nth-child(2n){border-left:1px solid var(--ln);padding-left:22px}}
@media(max-width:520px){.tl{grid-template-columns:1fr}.tl .t:nth-child(2n){border-left:none;padding-left:0}}

/* leadership */
.leaders{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:56px}
@media(max-width:960px){.leaders{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.leaders{grid-template-columns:1fr}}
.leader{border:1px solid var(--ln);border-radius:3px;overflow:hidden;background:#fff}
.leader .ph{height:300px;background:var(--ink);overflow:hidden}
.leader .ph img{width:100%;height:100%;object-fit:cover;object-position:center top}
.leader .mono{height:300px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:800;font-size:64px;letter-spacing:-0.02em}
.leader .in{padding:24px 26px 28px}
.leader h4{font-size:20px}
.leader .role{font-family:var(--disp);font-weight:700;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--red);margin:6px 0 12px}
.leader p{font-size:14.5px;color:var(--mut)}

/* tiles (partners, approvals) */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--ln);border:1px solid var(--ln);margin-top:48px}
.tiles.c4{grid-template-columns:repeat(4,1fr)}
@media(max-width:860px){.tiles,.tiles.c4{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.tiles,.tiles.c4{grid-template-columns:1fr}}
.tile{background:#fff;padding:30px 28px}
.tile .k{font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:10px}
.tile h4{font-size:18px;margin-bottom:6px}
.tile p{font-size:14.5px;color:var(--mut)}
.tile .yr{font-family:var(--disp);font-weight:800;font-size:13px;color:var(--mut-2);margin-top:10px;letter-spacing:.04em}

/* awards */
.awards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
@media(max-width:860px){.awards{grid-template-columns:1fr 1fr}}
.award{border:1px solid var(--ln);border-radius:3px;padding:24px 22px;background:#fff}
.award .medal{display:inline-block;font-family:var(--disp);font-weight:800;font-size:11.5px;letter-spacing:.12em;padding:4px 10px;color:#fff;background:var(--red);margin-bottom:14px}
.award .medal.s{background:#8A929E}
.award h4{font-size:17px;margin-bottom:4px}
.award p{font-size:13.5px;color:var(--mut)}

/* product table */
.ptable{width:100%;border-collapse:collapse;margin-top:40px;font-size:15px}
.ptable th{text-align:left;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);padding:0 18px 14px 0;border-bottom:2px solid var(--ink)}
.ptable td{padding:20px 18px 20px 0;border-bottom:1px solid var(--ln);vertical-align:top;color:var(--mut)}
.ptable td:first-child{font-family:var(--disp);font-weight:800;color:var(--ink);font-size:17px;white-space:nowrap}
.ptable td:nth-child(2){color:var(--ink);font-weight:600}
@media(max-width:720px){.ptable thead{display:none}.ptable tr{display:block;border-bottom:1px solid var(--ln);padding:16px 0}.ptable td{display:block;border:none;padding:2px 0}}

/* banner CTA */
.banner{position:relative;color:#fff;overflow:hidden;background:var(--near)}
.banner .hero-img{opacity:.55}
.banner .ov{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,13,16,0.94) 0%,rgba(12,13,16,0.72) 50%,rgba(160,14,32,0.55) 100%)}
.banner .wrap{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap}
.banner h2{color:#fff}
.banner .kicker{color:#fff}
.banner p{color:#D7DCE2;margin-top:16px;max-width:56ch}

/* news */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:52px}
@media(max-width:900px){.news{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.news{grid-template-columns:1fr}}
.post{display:flex;flex-direction:column;border-top:2px solid var(--ink);padding-top:20px}
.post img{width:100%;height:220px;object-fit:cover;border-radius:2px;margin-bottom:18px;background:var(--g1)}
.post .meta{font-family:var(--disp);font-weight:700;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.post h4{font-size:19px;line-height:1.25;margin-bottom:8px}
.post p{font-size:14.5px;color:var(--mut)}
.post.feature{grid-column:1/-1;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.post.feature img{height:clamp(260px,32vw,420px);margin:0}
.post.feature h4{font-size:clamp(22px,2.4vw,30px)}
@media(max-width:760px){.post.feature{grid-template-columns:1fr;gap:18px}}

/* contact */
.contact{background:var(--ink);color:#fff}
.contact h2{color:#fff}
.contact .kicker{color:#fff}
.contact-l p{color:#C3CAD3;margin:20px 0 0;max-width:44ch}
.cbox{background:rgba(255,255,255,0.04);border:1px solid var(--ln-dk);border-radius:4px;padding:28px 34px}
@media(max-width:640px){.cbox{padding:20px 20px}}
.cline{display:flex;gap:18px;padding:15px 0;border-bottom:1px solid var(--ln-dk);font-size:14.5px}
.cline:last-child{border-bottom:none}
.cline .lab{font-family:var(--disp);font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8B95A2;min-width:96px;padding-top:2px}
.cline .val{color:#EAEEF3}
.cline a.val:hover{text-decoration:underline}
.light .cbox{background:#fff;border-color:var(--ln)}
.light .cline{border-bottom-color:var(--ln)}
.light .cline .lab{color:var(--mut-2)}
.light .cline .val{color:var(--tx)}
.offices{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
@media(max-width:860px){.offices{grid-template-columns:1fr}}
.office h3{font-size:22px;margin-bottom:4px}
.office .tag{font-family:var(--disp);font-weight:700;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:16px;display:block}

/* legal */
.legal{max-width:820px}
.legal h2{font-size:26px;margin:46px 0 14px}
.legal h3{font-size:18px;margin:28px 0 8px}
.legal p,.legal li{color:var(--mut);font-size:15.5px}
.legal p+p{margin-top:12px}
.legal ul{margin:10px 0 0 22px}
.legal li+li{margin-top:6px}
.note{background:var(--g1);border-left:3px solid var(--red);padding:16px 20px;font-size:14px;color:var(--mut);margin-top:24px}

/* footer */
footer{background:var(--near);color:#fff;padding:68px 0 34px}
.foot-top{display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid var(--ln-dk)}
.foot-brand{max-width:36ch}
.foot-brand img{height:24px;width:auto;filter:brightness(0) invert(1)}
.foot-brand p{font-size:13.5px;color:#9BA4AF;margin-top:16px;line-height:1.65}
.foot-cols{display:flex;gap:60px;flex-wrap:wrap}
.foot-col h5{font-family:var(--disp);font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8B95A2;margin-bottom:16px}
.foot-col a,.foot-col span{display:block;font-size:14px;color:#C3CAD3;margin-bottom:10px;transition:color .2s}
.foot-col a:hover{color:#fff}
.foot-bot{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;padding-top:26px;font-size:12.5px;color:#79828E}
.foot-bot nav{display:flex;gap:20px;flex-wrap:wrap}
.foot-bot nav a:hover{color:#fff}
.ver{font-family:var(--disp);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--red);padding:4px 10px}
footer .tbc{background:rgba(255,255,255,0.1);border-bottom-color:#fff}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* dark-section text contrast */
.dark .row p,.dark .col p,.dark .card p,.dark .body p{color:#B4BCC6}
.dark .col .k{color:#FF5A6E}
/* news image placeholder */
.post .noimg{height:220px;border-radius:2px;margin-bottom:18px;background:var(--g1);border:1.5px dashed var(--ln-2);display:flex;align-items:center;justify-content:center}
.post .noimg span{font-size:12.5px;font-weight:600;color:var(--mut-2);letter-spacing:.04em}

/* client logo wall */
.logos{display:grid;grid-template-columns:repeat(8,1fr);gap:12px;margin-top:52px}
@media(max-width:1000px){.logos{grid-template-columns:repeat(6,1fr)}}
@media(max-width:720px){.logos{grid-template-columns:repeat(4,1fr);gap:8px}}
@media(max-width:420px){.logos{grid-template-columns:repeat(3,1fr)}}
.logo-tile{background:#fff;border:1px solid var(--ln);border-radius:3px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;padding:16%;transition:border-color .4s,box-shadow .4s,transform .4s}
.logo-tile img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .5s,opacity .5s,transform .5s}
.logo-tile:hover{border-color:var(--ln-2);box-shadow:0 10px 26px rgba(0,0,0,0.06);transform:translateY(-2px)}
.logo-tile:hover img{filter:none;opacity:1;transform:scale(1.04)}

/* sustainability teaser (home) */
.sustain-teaser{position:relative;overflow:hidden;background:#0d1410;color:#fff}
.sustain-teaser .hero-img{opacity:.5}
.sustain-teaser .ov{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(10,14,11,0.94) 0%,rgba(10,14,11,0.78) 55%,rgba(10,14,11,0.55) 100%)}
.sustain-teaser .wrap{position:relative;z-index:2}
.sustain-teaser h2,.sustain-teaser .kicker,.sustain-teaser .more{color:#fff}
.sustain-teaser .lede{color:#D3DAD5}
.sdg-chips{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sdg-chips span{display:flex;align-items:center;gap:14px;color:#fff;font-size:13px;font-weight:600;line-height:1.3;padding:14px 16px;border-radius:3px}
.sdg-chips b{font-family:var(--disp);font-weight:800;font-size:28px;line-height:1;min-width:34px}
@media(max-width:520px){.sdg-chips{grid-template-columns:1fr}}

/* SDG tiles */
.sdgs{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px}
@media(max-width:960px){.sdgs{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.sdgs{grid-template-columns:1fr}}
.sdg{background:#fff;border:1px solid var(--ln);border-radius:3px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .4s,transform .4s}
.sdg:hover{box-shadow:0 18px 40px rgba(0,0,0,0.08);transform:translateY(-3px)}
.sdg-n{display:flex;align-items:center;gap:16px;color:#fff;padding:20px 22px;min-height:96px}
.sdg-n b{font-family:var(--disp);font-weight:800;font-size:46px;line-height:1;letter-spacing:-0.02em}
.sdg-n span{font-family:var(--disp);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;line-height:1.3}
.sdg .in{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.sdg h4{font-size:19px;margin-bottom:8px}
.sdg p{font-size:14.5px;color:var(--mut);flex:1}
.sdg .tg{font-family:var(--disp);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut-2);margin-top:16px;padding-top:14px;border-top:1px solid var(--ln)}
.fine{font-size:12.5px;color:var(--mut-2);margin-top:26px;max-width:80ch}
.tgt{display:inline-block;margin-top:8px;font-family:var(--disp);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#fff}

/* =========================================================
   MOTION · subtle, premium, reduced-motion safe
   ========================================================= */
:root{--ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1)}
body{animation:pageIn .6s var(--ease) both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}

/* reveal: softer, longer, eased */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:none}

/* hero: slow settle zoom + staggered text */
.hero .hero-img,.phero .hero-img{animation:heroZoom 2.6s var(--ease-out) both;will-change:transform}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero .wrap>*,.phero .wrap>*{animation:riseIn 1s var(--ease-out) both}
.hero .wrap>*:nth-child(1),.phero .wrap>*:nth-child(1){animation-delay:.25s}
.hero .wrap>*:nth-child(2),.phero .wrap>*:nth-child(2){animation-delay:.4s}
.hero .wrap>*:nth-child(3),.phero .wrap>*:nth-child(3){animation-delay:.55s}
.hero .wrap>*:nth-child(4),.phero .wrap>*:nth-child(4){animation-delay:.7s}
@keyframes riseIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.parallax{will-change:transform}

/* kicker rule draws in */
.kicker::before{transition:width .9s var(--ease-out) .15s}
.reveal .kicker::before,.reveal.kicker::before{width:0}
.reveal.in .kicker::before,.reveal.in.kicker::before{width:30px}

/* top rules on column groups draw across */
.cols,.tl,.rows{position:relative}
.cols.draw,.tl.draw{border-top-color:transparent}
.cols.draw::before,.tl.draw::before{content:"";position:absolute;left:0;top:-2px;height:2px;width:0;background:var(--ink);transition:width 1.4s var(--ease-out)}
.dark .cols.draw::before{background:#fff}
.cols.draw.in::before,.tl.draw.in::before{width:100%}

/* image wipe on reveal + slow hover zoom */
.media{overflow:hidden;border-radius:3px}
.media img{clip-path:inset(0 0 0 0);transition:transform 1.2s var(--ease-out)}
.media.reveal img{clip-path:inset(12% 0 0 0);transform:scale(1.06);transition:clip-path 1.3s var(--ease-out),transform 1.6s var(--ease-out)}
.media.reveal.in img{clip-path:inset(0 0 0 0);transform:scale(1)}
.media:hover img{transform:scale(1.03)}
.card img,.post img{transition:transform 1.1s var(--ease-out)}
.card,.post{overflow:hidden}
.card:hover img,.post:hover img{transform:scale(1.045)}
.leader .ph img{transition:transform 1.1s var(--ease-out)}
.leader:hover .ph img{transform:scale(1.04)}
.leader{transition:box-shadow .4s,transform .4s}
.leader:hover{box-shadow:0 18px 40px rgba(0,0,0,0.08);transform:translateY(-3px)}
.tile,.award{transition:background .4s,box-shadow .4s}
.tile:hover{background:#FBFBFC}
.award:hover{box-shadow:0 12px 30px rgba(0,0,0,0.06)}

/* nav underline grows on hover */
.navlinks a:not(.cta)::before{content:"";position:absolute;left:0;bottom:-8px;height:2px;width:100%;background:currentColor;opacity:.5;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.navlinks a:not(.cta):hover::before{transform:scaleX(1)}
.navlinks a.on::before{display:none}
@media(max-width:1020px){.navlinks a:not(.cta)::before{display:none}}

/* buttons + arrow links */
.btn{transition:background .3s,border-color .3s,color .3s,transform .3s var(--ease-out),box-shadow .3s}
.btn:hover{transform:translateY(-1px)}
.btn-red:hover{box-shadow:0 10px 24px rgba(212,18,42,0.28)}
.btn svg{transition:transform .35s var(--ease-out)}
.btn:hover svg,.more:hover svg{transform:translateX(4px)}
.more{transition:gap .35s var(--ease-out),opacity .3s}

/* strip items fade in sequence */
.strip .it{animation:riseIn .9s var(--ease-out) both}
.strip .it:nth-child(1){animation-delay:.85s}.strip .it:nth-child(2){animation-delay:.95s}.strip .it:nth-child(3){animation-delay:1.05s}.strip .it:nth-child(4){animation-delay:1.15s}

/* metric numbers */
.metric .v{font-variant-numeric:tabular-nums}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.media.reveal img{opacity:1!important;transform:none!important;clip-path:none!important}
  .reveal .kicker::before,.reveal.kicker::before{width:30px}
  .cols.draw,.tl.draw{border-top-color:var(--ink)}
  .cols.draw::before,.tl.draw::before{display:none}
}

/* =========================================================
   ADAPTIVE DISPLAY · zoom-aware heights, progressive images, lite mode
   ========================================================= */
.hero{min-height:calc(94vh / var(--z,1))}
.phero{min-height:calc(58vh / var(--z,1))}
@media(max-width:720px){.phero{min-height:440px}}
@media(max-height:560px) and (orientation:landscape){.hero{min-height:auto}.hero .wrap{padding-top:110px;padding-bottom:40px}.phero{min-height:auto}}
.bg-lo{filter:blur(14px);transition:filter .9s var(--ease-out)}
.bg-lo.bg-ready{filter:none}
.hero .hero-img.bg-lo,.phero .hero-img.bg-lo{inset:-20px}
.hero .hero-img.bg-ready,.phero .hero-img.bg-ready{inset:0}
html{text-rendering:optimizeLegibility}
html[data-display="large"] .lede,html[data-display="ultra"] .lede{line-height:1.7}
html.lite .hero .hero-img,html.lite .phero .hero-img{animation:none}
html.lite .media.reveal img{clip-path:none;transform:none}
html.lite .bg-lo{filter:none}

/* =========================================================
   PREMIUM HOVER · desktop pointer only, reduced-motion safe
   ========================================================= */
@media (hover:hover) and (pointer:fine){
  /* cursor spotlight on cards and tiles */
  .card,.sdg,.leader,.award,.tile,.logo-tile,.cbox{position:relative;isolation:isolate}
  .card::after,.sdg::after,.leader::after,.award::after,.tile::after,.logo-tile::after{
    content:"";position:absolute;inset:0;pointer-events:none;z-index:2;opacity:0;transition:opacity .45s var(--ease-out);
    background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(212,18,42,0.07),transparent 45%);
  }
  .dark .card::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,0.07),transparent 45%)}
  .card:hover::after,.sdg:hover::after,.leader:hover::after,.award:hover::after,.tile:hover::after,.logo-tile:hover::after{opacity:1}

  /* red accent rule draws across the top edge */
  .card::before,.leader::before,.award::before,.tile::before{
    content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--red);z-index:3;
    transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease-out);
  }
  .card:hover::before,.leader:hover::before,.award:hover::before,.tile:hover::before{transform:scaleX(1)}

  /* gentle 3D tilt (set by JS) */
  .tilt{transform-style:preserve-3d;transition:opacity .9s var(--ease-out),transform .5s var(--ease-out),box-shadow .5s var(--ease-out)!important;will-change:transform}
  .tilt:hover{box-shadow:0 24px 50px -12px rgba(16,18,24,0.18)}
  .card h4,.sdg h4,.leader h4{transition:color .35s}
  .card:hover h4,.leader:hover h4{color:var(--red)}
  .dark .card:hover h4{color:#fff}

  /* SDG tile: number nudges, colour band deepens */
  .sdg-n b{transition:transform .5s var(--ease-out)}
  .sdg:hover .sdg-n b{transform:translateX(4px) scale(1.06)}
  .sdg-n{transition:filter .4s}
  .sdg:hover .sdg-n{filter:saturate(1.12) brightness(.96)}

  /* buttons: light sheen sweeps across */
  .btn{position:relative;overflow:hidden;isolation:isolate}
  .btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:45%;z-index:-1;pointer-events:none;
    background:linear-gradient(105deg,transparent,rgba(255,255,255,0.28),transparent);transform:skewX(-18deg);transition:left .8s var(--ease-out)}
  .btn-wht::after,.btn-line::after{background:linear-gradient(105deg,transparent,rgba(212,18,42,0.10),transparent)}
  .btn:hover::after{left:120%}
  .magnet{transition:transform .35s var(--ease-out),background .3s,border-color .3s,color .3s,box-shadow .3s}

  /* text links: underline draws in */
  .more{position:relative}
  .more::after{content:"";position:absolute;left:0;bottom:-4px;height:1.5px;width:calc(100% - 22px);background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
  .more:hover::after{transform:scaleX(1)}
  .foot-col a{position:relative;display:inline-block}
  .foot-col a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out)}
  .foot-col a:hover::after{transform:scaleX(1)}
  .foot-col a:hover{color:#fff;transform:translateX(3px)}
  .foot-col a{transition:color .3s,transform .35s var(--ease-out)}

  /* images inside media blocks: soft vignette lifts on hover */
  .media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(10,11,14,0.25));opacity:0;transition:opacity .6s var(--ease-out);border-radius:3px}
  .media:hover::after{opacity:1}

  /* table rows and numbered rows */
  .ptable tbody tr{transition:background .35s}
  .ptable tbody tr:hover{background:var(--g1)}
  .row{transition:background .35s,padding-left .45s var(--ease-out)}
  .row:hover{background:rgba(255,255,255,0.03);padding-left:14px}
  .checks li{transition:transform .4s var(--ease-out)}
  .checks li:hover{transform:translateX(6px)}
  .tl .t{transition:background .35s}
  .tl .t:hover{background:var(--g1)}
  .sdg-chips span{transition:transform .4s var(--ease-out),filter .3s}
  .sdg-chips span:hover{transform:translateY(-3px);filter:brightness(1.06)}

  /* news posts: title underline + image lift */
  .post h4{text-decoration:underline 1.5px transparent;text-underline-offset:5px;transition:text-decoration-color .45s var(--ease-out),color .35s}
  .post:hover h4{text-decoration-color:currentColor;color:var(--red)}
}
@media(prefers-reduced-motion:reduce){
  .tilt,.magnet{transform:none!important}
  .btn::after,.card::before,.leader::before,.award::before,.tile::before{display:none}
}

/* =========================================================
   FOOTER v2 · corporate layout
   ========================================================= */
footer{background:var(--near);color:#fff;padding:80px 0 28px;border-top:3px solid var(--red)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:52px;border-bottom:1px solid var(--ln-dk)}
@media(max-width:1000px){.foot-grid{grid-template-columns:1fr 1fr;gap:40px 32px}.foot-brand{grid-column:1/-1}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr 1fr;gap:34px 20px}}
.foot-logo img{height:26px;width:auto;filter:brightness(0) invert(1)}
.foot-brand p{font-size:14px;color:#9BA4AF;margin-top:20px;line-height:1.7;max-width:40ch}
.foot-brand address{font-style:normal;font-size:13.5px;color:#C3CAD3;line-height:1.7;margin-top:18px;padding-left:14px;border-left:2px solid var(--red)}
.foot-col h5{font-family:var(--disp);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8B95A2;margin-bottom:18px}
.foot-col ul{list-style:none}
.foot-col li{margin-bottom:12px;line-height:1.45}
.foot-col li a,.foot-col li span{display:inline-block;font-size:14px;color:#C9CFD7;margin:0}
.foot-col li span{color:#9BA4AF;font-size:13.5px}
.foot-col a.foot-cta{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:600;margin-top:4px;padding:9px 14px;border:1px solid rgba(255,255,255,0.28);border-radius:2px}
.foot-col a.foot-cta svg{width:14px;height:14px;transition:transform .35s var(--ease-out)}
.foot-col a.foot-cta:hover{border-color:#fff;background:rgba(255,255,255,0.06);transform:none}
.foot-col a.foot-cta:hover svg{transform:translateX(3px)}
.foot-col a.foot-cta::after{display:none}
.foot-bot{display:flex;justify-content:space-between;align-items:center;gap:14px 28px;flex-wrap:wrap;padding-top:24px;font-size:12.5px;color:#79828E;border:none}
.foot-bot .legal-line{margin:0}
.foot-bot .reg{margin-left:10px;padding-left:10px;border-left:1px solid var(--ln-dk)}
@media(max-width:620px){.foot-bot .reg{display:block;margin:6px 0 0;padding:0;border:none}}
.foot-bot nav{display:flex;gap:22px;flex-wrap:wrap}
.foot-bot nav a{color:#9BA4AF;transition:color .3s}
.foot-bot nav a:hover{color:#fff}
.ver-line{margin-top:18px;text-align:right}
.ver{font-family:var(--disp);font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#79828E;background:transparent;border:1px solid var(--ln-dk);padding:3px 9px;border-radius:2px}
@media(max-width:620px){.ver-line{text-align:left}}

/* ===== v2 professional pass (24 Oct 2026) ===== */
/* credentials strip: four equal columns, aligned */
.strip .wrap{padding-top:0;padding-bottom:0}
.strip-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex-wrap:nowrap}
.strip .it{min-width:0;padding:26px 28px;align-items:flex-start;gap:16px;border-right:1px solid rgba(255,255,255,0.18)}
.strip .it:first-child{padding-left:0}
.strip .it:last-child{padding-right:0}
.strip .it svg{width:24px;height:24px;margin-top:1px}
.strip .it b{font-size:15px;letter-spacing:.005em;margin-bottom:4px}
.strip .it span{display:block;font-size:12.5px;line-height:1.45;color:rgba(255,255,255,0.86);max-width:30ch}
@media(max-width:960px){.strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strip .it,.strip .it:first-child,.strip .it:last-child{padding:22px 20px;border-bottom:1px solid rgba(255,255,255,0.18)}.strip .it:nth-child(2n){border-right:none}.strip .it:nth-child(n+3){border-bottom:none}}
@media(max-width:480px){.strip-grid{grid-template-columns:1fr}.strip .it{border-right:none!important;border-bottom:1px solid rgba(255,255,255,0.18)!important}.strip .it:last-child{border-bottom:none!important}}

/* single technology feature card (home) */
.feature{display:grid;grid-template-columns:1.1fr 1fr;background:#fff;border:1px solid var(--ln);overflow:hidden;color:inherit;transition:box-shadow .5s var(--ease-out),border-color .5s}
.feature-img{overflow:hidden;min-height:340px}
.feature-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-out)}
.feature-in{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;justify-content:center}
.feature-in .k{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.feature-in h3{font-family:var(--disp);font-weight:800;font-size:clamp(26px,3vw,36px);line-height:1.1;letter-spacing:-.02em;color:var(--ink);margin-bottom:16px}
.feature-in p{color:var(--mut);font-size:16px;line-height:1.65;max-width:52ch}
.feature-in .feature-more{margin-top:14px;font-size:14px;color:var(--mut-2)}
@media(hover:hover) and (pointer:fine){.feature:hover{box-shadow:0 24px 50px rgba(15,20,30,.10);border-color:var(--ln-2)}.feature:hover .feature-img img{transform:scale(1.04)}}
@media(max-width:820px){.feature{grid-template-columns:1fr}.feature-img{min-height:220px}}

/* field evidence figures (quality) */
.qstats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:56px;border-top:1px solid var(--ln-dk)}
.qstat{padding:36px 28px 8px 0}
.qstat+.qstat{padding-left:28px;border-left:1px solid var(--ln-dk)}
.qstat .v{font-family:var(--disp);font-weight:800;font-size:clamp(44px,5vw,64px);line-height:1;color:#fff;letter-spacing:-.03em}
.qstat .v span{color:var(--red);font-size:.42em;margin-left:4px}
.qstat p{color:rgba(255,255,255,.75);font-size:14.5px;margin-top:14px;max-width:32ch}
@media(max-width:760px){.qstats{grid-template-columns:1fr}.qstat,.qstat+.qstat{padding:26px 0;border-left:none;border-bottom:1px solid var(--ln-dk)}}
@media(prefers-reduced-motion:reduce){.feature,.feature-img img{transition:none}}

/* "Covered by" card (home) */
.press-card{display:grid;grid-template-columns:240px 1fr;align-items:stretch;margin-top:40px;background:#fff;border:1px solid var(--ln);color:inherit;transition:box-shadow .5s var(--ease-out),border-color .5s}
.press-card-h{padding:32px 28px;border-right:1px solid var(--ln);display:flex;flex-direction:column;justify-content:center}
.press-card-h h3{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:-.01em;color:var(--ink);margin-bottom:8px}
.press-card-h p{font-size:13.5px;color:var(--mut);line-height:1.5}
.press-logos{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.press-logos li{display:flex;align-items:center;justify-content:center;height:92px;padding:0 16px;border-right:1px solid var(--ln)}
.press-logos li:nth-child(5n){border-right:none}
.press-logos li:nth-child(-n+5){border-bottom:1px solid var(--ln)}
.press-logos img{width:auto;max-width:100%;object-fit:contain;filter:grayscale(1);opacity:.6;transition:filter .4s,opacity .4s}
@media(hover:hover) and (pointer:fine){.press-card:hover{box-shadow:0 20px 44px rgba(15,20,30,.08);border-color:var(--ln-2)}.press-card:hover .press-logos img{opacity:.85}.press-logos li:hover img{filter:none;opacity:1}}
@media(max-width:960px){.press-card{grid-template-columns:1fr}.press-card-h{border-right:none;border-bottom:1px solid var(--ln);padding:24px}}
@media(max-width:600px){.press-logos{grid-template-columns:repeat(2,minmax(0,1fr))}.press-logos li{height:76px;border-bottom:1px solid var(--ln)}.press-logos li:nth-child(5n){border-right:1px solid var(--ln)}.press-logos li:nth-child(2n){border-right:none}.press-logos li:nth-last-child(-n+2){border-bottom:none}.press-logos img{max-height:30px}}

/* credentials strip: five items */
.strip-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.strip .it{padding:24px 22px}
.strip .it span{max-width:26ch}
@media(max-width:1100px){.strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.strip .it,.strip .it:first-child,.strip .it:last-child{padding:22px 20px;border-bottom:1px solid rgba(255,255,255,0.18)}.strip .it:nth-child(2n){border-right:none}.strip .it:last-child{grid-column:1/-1;border-bottom:none;border-right:none}.strip .it:nth-child(n+3){border-bottom:1px solid rgba(255,255,255,0.18)}.strip .it:last-child{border-bottom:none}}
@media(max-width:480px){.strip-grid{grid-template-columns:1fr}.strip .it{border-right:none!important}}
/* certifications & awards strip (r15) */
.creds{display:grid;grid-template-columns:5fr 4fr;gap:40px;margin-top:64px;padding-top:40px;border-top:1px solid var(--ln)}
.creds-h{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);font-weight:600;margin:0 0 18px}
.creds-row{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}
.cred{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.cred-logo{width:100%;aspect-ratio:1/1;background:#fff;border:1px solid var(--ln);border-radius:3px;display:flex;align-items:center;justify-content:center;padding:16%;transition:border-color .4s,box-shadow .4s,transform .4s}
.cred-logo{position:relative;min-height:0;overflow:hidden}.cred-logo img{position:absolute;left:16%;top:16%;width:68%;height:68%;object-fit:contain;display:block}
.cred:hover .cred-logo{border-color:var(--ln-2);box-shadow:0 10px 26px rgba(0,0,0,.06);transform:translateY(-2px)}
.cred-t{font-size:12.5px;line-height:1.35;color:var(--tx)}
.medal-txt{width:100%;aspect-ratio:1/1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f3dc8a,#c9a23c 70%,#a8822a);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#3b2c06;box-shadow:inset 0 0 0 3px rgba(255,255,255,.35)}
.medal-txt b{font-size:15px;letter-spacing:.06em;text-transform:uppercase}
.medal-txt small{font-size:9.5px;line-height:1.2;text-align:center;margin-top:2px}
@media(max-width:900px){.creds{grid-template-columns:1fr;gap:32px}}
@media(max-width:420px){.creds-row{grid-template-columns:repeat(3,1fr)}}
/* SDG wheel (r16) */
.sdg-viz{display:flex;flex-direction:column;align-items:center;gap:22px}
.sdg-viz .sdg-wheel{width:min(300px,78vw);height:auto}
.sdg-wheel-wrap{display:flex;align-items:center;gap:36px;margin:44px 0 8px}
.sdg-wheel-wrap .sdg-wheel{width:260px;flex:0 0 260px;height:auto}
.sdg-wheel-wrap p{max-width:420px;color:var(--mut);font-size:15px;line-height:1.6}
.sdg-wheel text{font-family:var(--body)}
@media(max-width:720px){.sdg-wheel-wrap{flex-direction:column;align-items:flex-start}.sdg-wheel-wrap .sdg-wheel{width:220px;flex-basis:auto}}
/* Viacore + SMA fibre (r17) */
.mid-h{font-family:var(--disp);font-size:22px;font-weight:700;margin-bottom:18px}
.plain{list-style:none;margin:0;padding:0}
.plain li{padding:12px 0 12px 22px;border-bottom:1px solid var(--ln);position:relative;font-size:15.5px}
.plain li::before{content:"";position:absolute;left:0;top:21px;width:8px;height:8px;background:var(--red);border-radius:1px}
.steps-mini{list-style:none;margin:0;padding:0;counter-reset:st}
.steps-mini li{counter-increment:st;display:grid;grid-template-columns:36px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--ln);font-size:15.5px}
.steps-mini li::before{content:counter(st,decimal-leading-zero);font-weight:700;color:var(--red);font-variant-numeric:tabular-nums}
.grey .plain li,.grey .steps-mini li{border-bottom-color:var(--ln-2)}
