/* V5.0 corporate design layer (2026-10-27). Loaded last. Brand: navy #112347, gold #BF9B5D; Cormorant Garamond (headings) + Inter (body/UI) – V5.1 (self-hosted). */
:root{--wrapw:1320px;--s1:72px;--s2:44px;--gold-dk:#8A6A2F;--ink2:#2B3446;--hair:#E6E1D6;--ease:cubic-bezier(.2,.7,.2,1)}
@media (min-width:821px){:root{--s1:104px;--s2:56px}}
@media (min-width:1181px){:root{--s1:128px;--s2:64px}}
html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
h1,h2,h3,.st-q p{text-wrap:balance}
p{text-wrap:pretty}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}

/* ---------- utility bar (desktop) ---------- */
.util{display:none}
@media (min-width:1181px){
 .util{display:block;background:#0A1630;color:#AEB5C2;font-family:var(--sans);font-size:12px;letter-spacing:.04em}
 .util-in{display:flex;justify-content:space-between;align-items:center;height:36px}
 .util a{color:#D5DAE3;text-decoration:none}.util a:hover{color:var(--gold-light)}
 .u-id,.u-r{display:flex;align-items:center;gap:14px}
 .u-sep{width:1px;height:12px;background:rgba(241,212,150,.35)}
}
/* ---------- header ---------- */
.top{border-bottom:1px solid var(--hair)}
@media (min-width:1181px){
 :root{--hdr:84px}
 html.scrolled{--hdr:66px}
 .brand .logo{height:46px}
 html.scrolled .top .brand .logo{height:38px}
 .nav-links{display:flex;align-items:center;gap:0}
 .ni{position:relative;display:flex;align-items:center;height:var(--hdr)}
 .ni>a{height:100%;min-height:0;display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:14.5px;font-weight:500;letter-spacing:.01em;color:var(--ink2);padding:0 14px;border-radius:0;box-shadow:none!important;position:relative}
 .ni>a:hover{background:none;color:var(--navy)}
 .ni>a:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
 .ni>a:hover:after,.ni:focus-within>a:after,.ni>a[aria-current=page]:after{transform:scaleX(1)}
 .ni>a[aria-current=page]{color:var(--navy);font-weight:600}
 .ni .chev{transition:transform .2s;opacity:.7}
 .ni:hover .chev,.ni:focus-within .chev{transform:rotate(180deg)}
 .ni>a[href$="contact.html"]{height:auto;margin-left:14px;border:1.5px solid var(--navy);color:var(--navy);font-weight:600;padding:10px 20px;border-radius:2px}
 .ni>a[href$="contact.html"]:after{display:none}
 .ni>a[href$="contact.html"]:hover,.ni>a[href$="contact.html"][aria-current=page]{background:var(--navy);color:#fff}
 .nav-links .sub{position:absolute;top:100%;left:0;z-index:70;padding-top:0;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s .2s}
 .ni:hover .sub,.ni:focus-within .sub{opacity:1;visibility:visible;transform:none;transition:opacity .2s var(--ease),transform .2s var(--ease)}
 .sub-in{display:grid;grid-template-columns:230px 300px;gap:32px;background:#fff;border-top:2px solid var(--gold);box-shadow:0 24px 48px rgba(10,22,48,.16);padding:28px 30px 26px}
 .sub-intro{margin:0;font-family:var(--serif);font-size:17px;line-height:1.45;color:var(--body)}
 .sub-k{display:block;font-family:var(--serif);font-size:28px;font-weight:500;color:var(--navy);margin-bottom:10px;line-height:1.1}
 .nav-links .sub ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair)}
 .nav-links .sub li{border-bottom:1px solid var(--hair)}
 .nav-links .sub a{display:flex;justify-content:space-between;align-items:center;min-height:52px;padding:0;font-family:var(--sans);font-size:14.5px;font-weight:500;color:var(--navy);white-space:normal;background:none;border-radius:0;box-shadow:none}
 .nav-links .sub a .arr{color:var(--gold);transition:transform .2s var(--ease)}
 .nav-links .sub a:hover .arr{transform:translateX(4px)}
 .nav-links .sub a[aria-current=page]{color:var(--gold-dk);font-weight:600}
 .ni:last-child .sub,.ni.sub-r .sub{left:auto;right:-60px}
}
/* mobile drawer: sub-pages indented */
@media (max-width:1180px){
 .nav{overflow-y:auto}
 .ni>a .chev{display:none}
 .sub-intro{display:none}
 .nav-links .sub ul{list-style:none;margin:0 0 6px;padding:0 0 6px 18px;border-bottom:1px solid rgba(241,212,150,.14)}
 .nav-links .sub a.dup{display:none!important}
 .ni.has-sub>a{border-bottom:0!important}
 .nav-links .sub a{min-height:44px;font-family:var(--sans);font-size:16px;font-weight:500;color:#D5DAE3;border-bottom:0;padding:4px 0;display:flex;gap:10px}
 .nav-links .sub a .arr{color:var(--gold-light);font-size:14px}
 .nav-links .sub a[aria-current=page]{color:var(--gold-light);box-shadow:none;padding-left:0}
}
/* ---------- type scale + kickers ---------- */
.kicker{display:flex;align-items:center;gap:14px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dk);margin:0 0 20px}
.kicker:before{content:"";width:32px;height:1px;background:var(--gold);flex:none}
.kicker.lt,.sec.dark .kicker{color:var(--gold-light)}
.sec h2:after{display:none}
.sec h2{font-weight:500;letter-spacing:-.012em;color:var(--navy)}
.sec.dark h2{color:#fff}
@media (min-width:821px){.sec h2{font-size:40px;line-height:1.08;margin-bottom:28px}}
@media (min-width:1181px){.sec h2{font-size:48px;line-height:1.06;margin-bottom:32px}.prose p,.lr-b .prose p{font-size:18.5px;line-height:1.65}.gintro{font-size:18.5px}}
.lr .lr-h h2{margin-bottom:0}
.num{font-family:var(--sans)!important;font-size:12px!important;font-weight:600;letter-spacing:.2em;color:var(--gold-dk)!important;margin-bottom:16px!important}
/* ---------- home hero: full bleed ---------- */
.hero.h50{background:#0A1630;min-height:min(820px,calc(100vh - 36px - var(--hdr)));display:flex;flex-direction:column}
.hero.h50:before{display:none}
.h50-bg{position:absolute;inset:0;margin:0}
.h50-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 42%;display:block}
.h50-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,40,.96) 0%,rgba(10,22,48,.9) 34%,rgba(12,26,56,.58) 62%,rgba(12,26,56,.28) 100%),linear-gradient(0deg,rgba(8,18,40,.85) 0%,rgba(8,18,40,0) 38%)}
.h50-in{position:relative;flex:1;display:flex;align-items:center;padding-top:64px;padding-bottom:48px}
.h50-txt{max-width:760px}
.hero.h50 .eyebrow{color:var(--gold-light);display:flex;align-items:center;gap:14px;margin-bottom:26px}
.hero.h50 .eyebrow:before{content:"";width:32px;height:1px;background:var(--gold)}
.hero.h50 h1{font-size:44px;line-height:1.02;font-weight:500;letter-spacing:-.015em;margin:0 0 26px;max-width:none;color:#fff}
.hero.h50 .lead{font-size:18px;line-height:1.6;color:#E7E3DA;max-width:34em}
.hero.h50 .btns{margin-top:34px}
.h50-foot{position:relative;border-top:1px solid rgba(241,212,150,.22);background:linear-gradient(0deg,rgba(8,18,40,.55),rgba(8,18,40,.2))}
.h50-rail ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr}
.h50-rail li+li{border-top:1px solid rgba(241,212,150,.16)}
.h50-rail a{display:grid;grid-template-columns:34px 1fr 20px;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:16px 0;color:#fff;text-decoration:none}
.h50-rail .rn{grid-row:1/3;font-family:var(--sans);font-size:12px;color:var(--gold-light);letter-spacing:.1em}
.h50-rail .rk{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#AEB5C2}
.h50-rail .rt{grid-column:2;font-family:var(--serif);font-size:21px;line-height:1.2}
.h50-rail .arr{grid-column:3;grid-row:1/3;color:var(--gold-light);transition:transform .25s var(--ease)}
.h50-rail a:hover .arr{transform:translateX(5px)}.h50-rail a:hover .rt{color:var(--gold-light)}
.h50-cred{margin:0;padding:10px 0 14px;font-family:var(--sans);font-size:11px;color:#8A93A3;letter-spacing:.02em}
@media (min-width:821px){
 .hero.h50 h1{font-size:64px}
 .hero.h50 .lead{font-size:20px}
 .h50-rail ol{grid-template-columns:repeat(3,minmax(0,1fr))}
 .h50-rail li+li{border-top:0;border-left:1px solid rgba(241,212,150,.16)}
 .h50-rail a{padding:26px 28px}
 .h50-rail li:first-child a{padding-left:0}
 .h50-cred{text-align:right;padding:0 0 12px}
}
@media (min-width:1181px){
 .hero.h50 h1{font-size:84px;line-height:.98}
 .h50-in{padding-top:96px;padding-bottom:72px}
 .h50-rail .rt{font-size:24px}
}
/* ---------- page heads: taller, network pattern ---------- */
.pagehead{min-height:0}
.pagehead:before{display:none}
.pagehead .netpat{position:absolute;right:0;top:0;height:100%;width:72%;max-width:980px;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 55%);mask-image:linear-gradient(90deg,transparent 0%,#000 55%);opacity:.55;pointer-events:none}
.netpat .ln{fill:none;stroke:#F1D496;stroke-opacity:.22;stroke-width:1}
.netpat .nd circle{fill:#F1D496;fill-opacity:.35}
.netpat .g1{fill:#F1D496;fill-opacity:.95}.netpat .g2{fill:none;stroke:#F1D496;stroke-opacity:.45}
.pagehead .wrap{position:relative}
.pagehead h1{font-weight:500;letter-spacing:-.015em}
.pagehead .eyebrow{display:flex;align-items:center;gap:14px}
.pagehead .eyebrow:before{content:"";width:32px;height:1px;background:var(--gold)}
.pagehead .h-rule{display:none}
@media (min-width:821px){.pagehead .wrap{padding-top:44px;padding-bottom:104px}.pagehead h1{font-size:60px}.crumbs ol{margin-bottom:56px}}
@media (min-width:1181px){.pagehead .wrap{padding-top:48px;padding-bottom:120px}.pagehead h1{font-size:72px;line-height:1;max-width:15em}.pagehead .lead{font-size:21px;max-width:44em;margin-top:28px}}
.pagehead.photo .ph-bg:after{background:linear-gradient(90deg,rgba(8,18,40,.95) 0%,rgba(10,22,48,.86) 42%,rgba(12,26,56,.45) 100%)!important}
/* ---------- buttons + text links ---------- */
.btn{border-radius:2px;letter-spacing:.03em;font-size:14.5px;min-height:50px;padding:12px 26px;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn .arr,.btn span[aria-hidden]{transition:transform .2s var(--ease)}
.btn:hover span[aria-hidden]{transform:translateX(3px)}
.tlink,.backlink,.ext,.maplink{font-family:var(--sans);font-weight:600;font-size:14.5px;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px}
.tlink:hover,.backlink:hover,.ext:hover{color:var(--gold-dk)}
.tlink.lt{color:#fff}.tlink.lt:hover{color:var(--gold-light)}
/* ---------- capability lists (were chips/boxes) ---------- */
.checks{gap:0 32px!important}
.checks li,.sec.alt .checks li{background:none!important;border:0!important;border-top:1px solid var(--hair)!important;border-radius:0!important;padding:16px 0 16px!important;font-family:var(--sans);font-size:15px;font-weight:500;color:var(--navy);box-shadow:none!important;align-items:center}
.checks .ci{display:inline-flex;width:28px;height:28px;flex:none;align-items:center;justify-content:center;color:var(--gold-dk);background:none!important}
.checks .ci .ic{width:22px;height:22px}
.checks.chips{display:grid!important;grid-template-columns:1fr}
.checks.chips li{border-radius:0!important;font-size:15px!important}
@media (min-width:821px){.checks.chips{grid-template-columns:repeat(2,minmax(0,1fr))}.lr-b .checks.chips{grid-template-columns:repeat(3,minmax(0,1fr))}}
.lr-b .checks{border-bottom:1px solid var(--hair)}
/* ---------- cards ---------- */
.card{background:#fff;border:1px solid var(--hair);border-top:2px solid transparent;border-radius:0!important;padding:36px 32px 30px;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.sec.alt .card{background:#fff}
a.card:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(17,35,71,.10);border-top-color:var(--gold)}
.card .ci,.aud .ci{background:none!important;width:auto!important;height:auto!important;justify-content:flex-start!important;color:var(--gold-dk)!important;margin-bottom:24px!important}
.card .ci .ic,.aud .ci .ic{width:34px!important;height:34px!important;stroke-width:1.2}
.card h3{font-weight:500}
.card .more{margin-top:auto;border-top:1px solid var(--hair);padding-top:14px;min-height:0;font-family:var(--sans);font-size:14px}
.card .more span{transition:transform .2s var(--ease);display:inline-block;margin-left:6px}
a.card:hover .more span{transform:translateX(4px)}
.relcard{border-radius:0!important}
/* steps: annual-report numerals */
.steps li{background:none!important;border:0!important;border-top:1px solid var(--navy)!important;padding:26px 0 0!important}
.steps .sn{font-family:var(--serif)!important;font-size:44px!important;font-weight:400;color:var(--gold-dk)!important;line-height:1;display:block;margin-bottom:18px;position:static!important;background:none!important;width:auto!important;height:auto!important;border:0!important}
@media (min-width:821px){.steps{gap:40px!important}}
/* ---------- key figures: annual-report band ---------- */
.stats-sec{background:var(--paper2);color:var(--navy);border-bottom:0;border-top:1px solid var(--hair);padding:var(--s1) 0!important}
.stats-sec .eyebrow{display:flex;align-items:center;gap:14px;color:var(--gold-dk)!important;margin-bottom:22px}
.stats-sec .eyebrow:before{content:"";width:32px;height:1px;background:var(--gold)}
.stats-sec h2.st-h{font-family:var(--serif);font-weight:500;font-size:36px;line-height:1.08;color:var(--navy);margin:0 0 44px;letter-spacing:-.012em}
.stats{background:none!important;border:0!important;border-radius:0!important;gap:0!important;grid-template-columns:1fr 1fr!important}
.stat{background:none!important;border:0!important;border-top:1px solid var(--navy)!important;padding:22px 20px 26px 0!important;position:relative;display:flex;flex-direction:column}
.stat:before{content:"";position:absolute;left:0;top:-1px;width:44px;height:3px;background:var(--gold)}
.stat .n{font-family:var(--serif)!important;color:var(--navy)!important;font-weight:500!important;font-size:56px!important;line-height:.95!important;letter-spacing:-.02em}
.stat .l{font-family:var(--sans)!important;color:var(--ink2)!important;font-size:14px!important;line-height:1.45!important;margin-top:16px!important;letter-spacing:.01em}
.stat .s{color:#6B7487!important;font-family:var(--sans);font-size:12.5px!important}
a.stat{text-decoration:none}a.stat:hover{background:none!important}
a.stat .go{color:var(--navy)!important;font-family:var(--sans);font-size:13px!important;text-decoration:none!important;border-bottom:1px solid var(--gold);align-self:flex-start;margin-top:14px!important}
.stats2{color:var(--ink2)!important;border-top:1px solid var(--hair);padding-top:20px!important;margin-top:28px!important;font-family:var(--sans)}
.stats2 .cap{color:var(--gold-dk)}
.stats-foot{color:#5B6475!important;font-family:var(--sans);font-size:13px!important;margin-top:28px!important;max-width:62em!important}
.stats-sec p a,.stats-foot a{color:var(--navy)!important;text-decoration-color:var(--gold)!important}
.stats-src{font-family:var(--sans);font-size:12px;letter-spacing:.02em;color:#6B7487;margin:10px 0 0}
.stats-sec .press{color:var(--ink2)!important}
.stats-sec mark.tbc{color:#3A2C00}
.statcta{margin-top:30px}
@media (min-width:821px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;column-gap:32px!important}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))!important}.stat .n{font-size:76px!important}.stats.three .stat .n{font-size:64px!important}.stats-sec h2.st-h{font-size:48px}}
@media (min-width:1181px){.stat .n{font-size:96px!important}.stats.three .stat .n{font-size:80px!important}.stats.three .stat .l{font-size:14px!important}}
/* ---------- statement band ---------- */
.stmt50{position:relative;background:linear-gradient(115deg,#0A1630 0%,#112347 64%,#16305E 100%);color:#fff;overflow:hidden;padding:var(--s1) 0}
.stmt50:before{content:"";position:absolute;inset:0;background:var(--lattice) right -60px center/auto 140% no-repeat;opacity:.45}
.st-in{position:relative;max-width:1040px}
.st-q{margin:0 0 34px;padding:0;border:0}
.st-q p{margin:0;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.3;color:#fff;letter-spacing:-.005em}
.st-q p:before{content:"“";display:block;font-size:96px;line-height:.6;color:var(--gold);height:44px}
@media (min-width:821px){.st-q p{font-size:44px;line-height:1.24}}
@media (min-width:1181px){.st-q p{font-size:52px}}
/* ---------- map band ---------- */
.map50{background:var(--paper)}
.mapgrid{display:grid;grid-template-columns:1fr;gap:44px}
.places{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--navy)}
.places li{padding:18px 0 20px;border-bottom:1px solid var(--hair)}
.pl-k{margin:0;font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk)}
.pl-t{margin:6px 0 2px;font-family:var(--serif);font-size:23px;line-height:1.2;color:var(--navy)}
.pl-d{margin:0 0 6px;font-size:15.5px;color:var(--body);line-height:1.5}
.places .tlink{font-size:13px}
.mapfig{margin:0;background:#fff;border:1px solid var(--hair);padding:24px 20px 16px;position:relative}
.mapfig:before{content:"";position:absolute;left:-1px;top:-1px;width:64px;height:3px;background:var(--gold)}
.ngmap{display:block;width:100%;height:auto}
.ngmap .st{fill:#E9ECF2;stroke:#fff;stroke-width:1}
.ngmap .st.hi{fill:#EAD9B6;stroke:#fff}
.ngmap .mk-h{fill:rgba(191,155,93,.22)}
.ngmap .mk-c{fill:#112347;stroke:#fff;stroke-width:1.6}
.ngmap .mk-l{stroke:#112347;stroke-width:.9;fill:none}
.ngmap .mk-t{font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:600;fill:#112347}
.ngmap .mk-s{font-family:Inter,system-ui,sans-serif;font-size:11px;fill:#5B6475}
.ngmap .mk-n{font-family:Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.3em;fill:#8A93A3}
.mapfig figcaption{font-family:var(--sans);font-size:11.5px;color:#6B7487;margin-top:10px;letter-spacing:.02em}
@media (min-width:980px){.mapgrid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;align-items:start}.mapfig{padding:36px 34px 22px;position:sticky;top:calc(var(--hdr) + 24px)}}
/* ---------- home platform split ---------- */
.p50 .split.v13{align-items:start}
/* ---------- CTA band: light, separated from the navy footer ---------- */
.ctaband{background:var(--paper)!important;color:var(--navy)}
.ctaband:before{display:none}
.ctaband:after{background:var(--hair)!important;height:1px!important}
.cb-t h2{color:var(--navy)!important;font-weight:500}
.cb-t p:not(.eyebrow){color:var(--body)!important}
.cb-t .eyebrow{color:var(--gold-dk)!important;display:flex;align-items:center;gap:14px}
.cb-t .eyebrow:before{content:"";width:32px;height:1px;background:var(--gold)}
.ctaband .btn.primary{background:var(--navy);color:#fff}.ctaband .btn.primary:hover{background:#0A1630}
.ctaband .btn.ghost{border-color:var(--navy);color:var(--navy)}.ctaband .btn.ghost:hover{background:var(--navy);color:#fff}
@media (min-width:1181px){.cb-t h2{font-size:52px}}
/* ---------- footer ---------- */
.foot.v50{background:#0A1630;padding:72px 0 0;border-top:0}
.foot.v50 .f-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px;padding-bottom:48px;border-bottom:1px solid rgba(241,212,150,.16)}
.foot.v50 .f-brand{grid-column:1/-1}
.foot.v50 .f-brand .logo{height:42px}
.foot.v50 .f-id{margin:22px 0 0;color:#C9CFDA;font-size:14px;line-height:1.6}
.foot.v50 .f-addr{margin:14px 0 0;color:#AEB5C2;font-size:14px;line-height:1.6;max-width:28em}
.foot.v50 .f-addr b{display:block;color:#E7E3DA;font-family:var(--sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin-bottom:4px}
.foot.v50 .f-col h2{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid rgba(241,212,150,.16)}
.foot.v50 .f-col ul{list-style:none;margin:0;padding:0}
.foot.v50 .f-col a{display:flex;align-items:center;min-height:40px;color:#E7E3DA;text-decoration:none;font-size:15px;line-height:1.3}
.foot.v50 .f-col a:hover{color:var(--gold-light)}
.foot.v50 .f-disc{font-size:12px;line-height:1.65;color:#8A93A3;margin:0;padding:28px 0;max-width:none;border-bottom:1px solid rgba(241,212,150,.16)}
.foot.v50 .f-disc a{color:#C9CFDA}
.foot.v50 .f-bottom{display:flex;flex-direction:column;gap:12px;padding:22px 0 18px;font-family:var(--sans);font-size:12.5px;color:#8A93A3}
.foot.v50 .f-legal{display:flex;flex-wrap:wrap;gap:4px 22px}
.foot.v50 .f-legal a,.foot.v50 .totop{color:#C9CFDA;text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.foot.v50 .f-legal a:hover,.foot.v50 .totop:hover{color:var(--gold-light)}
.foot.v50 .totop span{margin-left:8px}
@media (min-width:980px){
 .foot.v50 .f-grid{grid-template-columns:minmax(0,4.2fr) repeat(3,minmax(0,2.2fr));gap:56px}
 .foot.v50 .f-brand{grid-column:auto}
 .foot.v50 .f-bottom{flex-direction:row;align-items:center;justify-content:space-between}
}
/* ---------- misc refinements ---------- */
.facts{border-radius:0!important}
.facts h2{font-weight:500}
.aplfig{border-radius:0!important;border:1px solid var(--hair)!important;box-shadow:none!important;position:relative}
.aplfig:before{content:"";position:absolute;left:-1px;top:-1px;width:64px;height:3px;background:var(--gold)}
.glance li,.aplglance li{border-radius:0!important}
.ncard{border-radius:0!important}
.explore a{border-radius:0!important}
.pf-solo,.relcard,.casegrid .ptable{border-radius:0!important}
/* ---------- reveal on scroll (decorative) ---------- */
.rvon .rv{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rvon .rv.in{opacity:1;transform:none}
/* ---------- print ---------- */
@media print{
 .util,.top,.burger,.navt,.chipnav,.ctaband,.h50-rail,.netpat,.stmt50:before,.totop{display:none!important}
 .hero.h50,.pagehead,.stmt50,.foot.v50{background:#fff!important;color:#000!important;min-height:0!important}
 .h50-bg{display:none}
 .hero.h50 h1,.pagehead h1,.st-q p,.foot.v50 *{color:#000!important}
 .rv{opacity:1!important;transform:none!important}
 a[href^="http"]:after{content:" (" attr(href) ")";font-size:9pt}
 .sec{padding:18pt 0!important}
}
/* fixes r1 */
.hero.h50 .h50-in{width:100%;box-sizing:border-box}
.hero.h50 p.h50-cred{max-width:none;color:#8A93A3;font-family:var(--sans);font-size:11px;line-height:1.4}
.stmt50 .kicker{margin-bottom:40px}
@media (min-width:821px){.split .checks.chips{grid-template-columns:1fr}}
@media (min-width:1181px){.nav-links .sub{transition:none}}
main p.kicker,main p.pl-k,main p.stats-src,main p.h50-cred{font-family:var(--sans)!important;font-weight:600!important}
main p.stats-src,main p.h50-cred{font-weight:400!important}
main p.pl-k{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk)}
.st-q p:before{content:none}
@media (min-width:1181px){.st-q p{font-size:48px;line-height:1.22}}
@media (max-width:820px){main .sec h2{margin-bottom:16px}}
/* ===== V5.1 Leadership – typographic panel (no portrait) ===== */
.ld50{border:1px solid var(--hair);background:#fff}
.ld-top{display:grid;grid-template-columns:1fr;}
.ld-id{background:var(--navy-deep);color:#fff;padding:40px 28px 36px;position:relative;overflow:hidden}
.ld-id:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 0% 0%,rgba(191,155,93,.16),transparent 60%);pointer-events:none}
.ld-med{width:120px;height:120px;display:block;margin:0 0 26px;position:relative}
.ld-med .m1{fill:none;stroke:var(--gold);stroke-width:2.2}
.ld-med .m2{fill:rgba(255,255,255,.04);stroke:rgba(191,155,93,.45);stroke-width:1}
.ld-med .mt{font-family:var(--serif);font-size:70px;fill:#F3E7CF;letter-spacing:2px}
main .ld50 p.ld-role{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);margin:0 0 10px;position:relative}
.ld50 h3.ld-name{font-family:var(--serif);font-weight:500;font-size:44px;line-height:1.05;color:#fff;margin:0 0 6px;position:relative}
main .ld50 p.ld-aka{font-family:var(--serif);font-style:italic;font-size:19px;color:#C9D0DC;margin:0 0 24px;position:relative}
.ld-li{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-family:var(--sans);font-size:14px;border:1px solid rgba(255,255,255,.28);padding:9px 14px;position:relative}
.ld-li:hover{border-color:var(--gold);color:var(--gold-light)}
.ld-li svg{width:16px;height:16px;fill:currentColor}
.ld-bio{padding:32px 24px 28px}
main .ld50 p.ld-lead{font-family:var(--serif);font-size:23px;line-height:1.45;color:var(--ink);margin:0 0 18px}
.ld-bio p{max-width:62ch}
.ld-facts{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--hair)}
.ld-f{padding:22px 20px 24px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.ld-f:nth-child(2n){border-right:0}
.ld-f dt{font-family:var(--serif);font-size:34px;line-height:1;color:var(--navy);margin:0 0 10px;padding-top:14px;border-top:2px solid var(--gold);display:inline-block}
.ld-f dd{margin:0;font-family:var(--sans);font-size:14px;line-height:1.45;color:var(--slate)}
@media(min-width:980px){
 .ld-top{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
 .ld-id{padding:56px 48px 52px;display:flex;flex-direction:column;justify-content:center}
 .ld-med{width:150px;height:150px;margin-bottom:34px}
 .ld50 h3.ld-name{font-size:58px}
 .ld-bio{padding:56px 56px 48px;display:flex;flex-direction:column;justify-content:center}
 main .ld50 p.ld-lead{font-size:27px}
 .ld-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
 .ld-f{border-bottom:0;padding:30px 32px 34px}
 .ld-f:nth-child(2n){border-right:1px solid var(--hair)}.ld-f:last-child{border-right:0}
 .ld-f dt{font-size:44px}
}
.pf-grid.solo{display:block}
/* balanced galleries / product rows (V5.1) */
@media(min-width:980px){.ggrid.g2.n3{grid-template-columns:repeat(3,1fr)}}
/* ===== V5.1 Locations: heading row + equal-height map | list ===== */
.map50 .map-head{margin-bottom:32px}
.map50 .map-head .gintro{margin:0;max-width:62ch}
.map50 .places{margin:0}
@media (min-width:980px){
 .map50 .map-head{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:80px;align-items:end;margin-bottom:48px}
 .map50 .map-head h2{margin-bottom:0}
 .map50 .mapgrid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px;align-items:stretch}
 .map50 .mapfig{position:static;display:flex;flex-direction:column;justify-content:center;padding:32px 36px 20px}
 .map50 .places{display:flex;flex-direction:column}
 .map50 .places li{flex:1 1 0;display:flex;flex-direction:column;justify-content:center;padding:16px 0}
}
/* ===== V5.1 footer: brand row + company-details block + columns + legal row ===== */
.foot.v50{border-top:4px solid var(--gold);position:relative;overflow:hidden}
.foot.v50:before{content:"";position:absolute;right:-180px;top:-220px;width:620px;height:620px;border:1px solid rgba(191,155,93,.10);border-radius:50%;pointer-events:none}
.foot.v50 .f-top{display:flex;flex-direction:column;gap:22px;padding:8px 0 36px;margin-bottom:40px;border-bottom:1px solid rgba(241,212,150,.22);position:relative}
.foot.v50 .f-top .logo{height:48px;width:auto}
.foot.v50 .f-top .f-mail{margin:0}
.foot.v50 .f-top .mail{font-family:var(--serif);font-size:24px;color:#fff;text-decoration:none;display:inline-flex;align-items:center;gap:12px;border-bottom:1px solid var(--gold);padding-bottom:6px}
.foot.v50 .f-top .mail:hover{color:var(--gold-light)}
.foot.v50 .f-top .mail svg{width:20px;height:20px}
.foot.v50 .f-co{border:1px solid rgba(241,212,150,.2);background:rgba(255,255,255,.03);padding:24px 24px 22px}
.foot.v50 .f-coh{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid rgba(241,212,150,.16)}
.foot.v50 .f-dl{margin:0;display:grid;gap:12px}
.foot.v50 .f-dl div{display:grid;grid-template-columns:9.5em 1fr;gap:12px;align-items:baseline}
.foot.v50 .f-dl dt{font-family:var(--sans);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#8A93A3}
.foot.v50 .f-dl dd{margin:0;font-family:var(--sans);font-size:14.5px;line-height:1.5;color:#E7E3DA}
.foot.v50 .f-disc{background:rgba(255,255,255,.025);padding:24px 24px;margin-top:40px;border:1px solid rgba(241,212,150,.12)}
@media(max-width:600px){.foot.v50 .f-dl div{grid-template-columns:1fr;gap:2px}.foot.v50 .f-top .mail{font-size:20px}}
@media(min-width:980px){
 .foot.v50 .f-top{flex-direction:row;align-items:center;justify-content:space-between;padding:16px 0 44px;margin-bottom:52px}
 .foot.v50 .f-top .logo{height:56px}
 .foot.v50 .f-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:56px;border-bottom:0;padding-bottom:0}
 .foot.v50 .f-disc{margin-top:56px;padding:26px 32px}
}
.foot.v50 .f-grid{border-bottom:0;padding-bottom:0}

/* =====================================================================================
   V5.1 EXPERT-AUDIT LAYER (owner 16:16 + font decision 16:27). Two fonts only:
   Cormorant Garamond (headings, Regular 400) + Inter (body, UI, labels). No shadows, radius 0–2px.
   ===================================================================================== */
:root{--gold-text:#7E5F28;--rule:#E3DED3}
/* spec: content max 1200px, text column ≤720px, gutters 20px mobile */
.wrap{max-width:calc(1200px + 2 * var(--gut))}
@media (max-width:600px){:root{--gut:20px}}
*,*:before,*:after{box-shadow:none!important}
.btn,.card,.facts,input,select,textarea,.mapfig,.ld50,.f-co{border-radius:0!important}
/* type – body + UI = Inter */
body,main p,main li,main td,main dd,main dt,main blockquote,figcaption,.pf-bio p{font-family:var(--sans)}
main p,main li{font-size:17px;line-height:1.6}
.prose,.gintro,.lr-b .prose,.cb-t p,.pagehead .lead{max-width:680px}
.prose p,.gintro{color:var(--body)}
@media (min-width:980px){main p,main li{font-size:18px}}
/* headings – Cormorant Garamond Regular, one step larger (Cormorant has a small x-height, so sizes sit one step above the spec) */
h1,h2,h3,.cb-t h2,.facts h2,.aplh,.ld50 h3.ld-name{font-family:var(--serif);font-weight:400!important;letter-spacing:-.01em}
h1,.pagehead h1{font-size:40px;line-height:1.05}
main h2,.cb-t h2{font-size:32px;line-height:1.1}
main h3{font-size:24px;line-height:1.2}
@media (min-width:980px){.pagehead h1{font-size:64px}main h2,.cb-t h2{font-size:48px}main h3{font-size:30px}}
@media (min-width:1181px){.pagehead h1{font-size:72px}}
.hero.h50 h1{font-weight:400!important}
h3.sub,.sub-h{font-family:var(--sans)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);margin:32px 0 14px}
/* section rhythm: 64px mobile / 120px desktop */
@media screen{main .sec,main .stats-sec,main .stmt50,.ctaband{padding:64px 0!important}
 @media (min-width:980px){main .sec,main .stats-sec,main .stmt50,.ctaband{padding:120px 0!important}}}
main .chipnav+.sec,main .stats-sec+.sec{padding-top:64px!important}
/* eyebrows only in the first block of each page (page head / hero) */
main .sec .kicker,main .stmt50 .kicker,.ctaband .eyebrow,.casehead .eyebrow,.stats-sec>.wrap>.eyebrow,main .sec p.eyebrow{display:none!important}
.pagehead .eyebrow,.hero .eyebrow{color:var(--gold-light)}
/* gold text on light backgrounds: darker gold for AA */
.sec .eyebrow.dk,.pl-k,.sn,.steps .sn,.ld-f dt,.lr-h .num{color:var(--gold-text)!important}
/* page heads: plain navy, large title; no pattern, no hexagons */
.hex-art,.netpat,.ld-med,.stmt50:before,.stmt50:after,.sec.dark:before,.sec.dark:after{display:none!important}
.pagehead.plain{background:var(--navy-deep)!important}
.pagehead.plain .wrap{padding-top:40px;padding-bottom:72px}
@media (min-width:980px){.pagehead.plain .wrap{padding-top:48px;padding-bottom:112px}}
.stats2 li:before{clip-path:none!important;width:6px!important;height:6px!important}
.tile .ico{clip-path:none!important;background:none!important}
/* buttons: navy primary everywhere; gold only on dark backgrounds */
.btn.primary,.btn.navy{background:var(--navy)!important;color:#fff!important;border:1.5px solid var(--navy)!important}
.btn.primary:hover,.btn.navy:hover{background:#0A1630!important}
.btn.ghost,.btn.ghostnavy{background:transparent!important;color:var(--navy)!important;border:1.5px solid var(--navy)!important}
.hero .btn.primary,.sec.dark .btn.primary,.cta-dark .btn.primary,.stmt50 .btn.primary{background:var(--gold)!important;border-color:var(--gold)!important;color:#0A1630!important}
.hero .btn.ghost,.sec.dark .btn.ghost,.cta-dark .btn.ghost{color:#fff!important;border-color:rgba(255,255,255,.6)!important}
/* closing bands: two styles */
.ctaband.cta-dark{background:var(--navy-deep)!important;color:#fff}
.cta-dark .cb-t h2{color:#fff!important}.cta-dark .cb-t p{color:#D5DAE3!important}
.ctaband.cta-line{background:#fff!important;border-top:1px solid var(--rule)}
.ctaband.cta-line:after{display:none}
@media screen{.ctaband.cta-line{padding:72px 0!important}}
.cta-line .cb-t h2{font-size:36px}
/* navy floating cards → hairline-ruled info bars */
aside.facts{background:none!important;color:var(--ink)!important;padding:0!important;border:0!important;border-top:2px solid var(--navy)!important}
aside.facts h2{font-family:var(--sans)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)!important;margin:0!important;padding:16px 0 12px}
aside.facts h2:after{display:none}
aside.facts dt,aside.facts dd{border-bottom:1px solid var(--rule)!important}
aside.facts dt{color:#4A5366!important;font-size:13px!important}
aside.facts dd{color:var(--ink)!important;font-family:var(--sans)!important;font-size:16px!important;font-weight:500}
aside.facts.kf dt{color:var(--navy)!important;font-family:var(--serif)!important;font-size:36px!important}
aside.facts .ext,.sec aside.facts .ext{color:var(--navy)!important}
.roles.crl li{background:none!important;border:0!important;border-top:1px solid var(--rule)!important;padding:16px 0!important;border-radius:0}
.roles.crl li:last-child{border-bottom:1px solid var(--rule)!important}
/* icon cards → borderless "number + title + text" grids */
.cards:not(.one),.glance,.aud{counter-reset:tg;gap:0 48px!important;display:grid}
.cards:not(.one) .card,.glance li,.aud li{counter-increment:tg;background:none!important;border:0!important;border-top:1px solid var(--navy)!important;padding:24px 0 32px!important;transform:none!important}
.cards:not(.one) .card:before,.glance li:before,.aud li:before{content:counter(tg,decimal-leading-zero);display:block;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--gold-text);margin-bottom:14px}
.cards:not(.one) .ci,.glance .ci,.aud .ci,.cards.one .ci{display:none!important}
.cards:not(.one) .card h3,.glance h4,.aud h3{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.2;color:var(--navy);margin:0 0 10px}
.cards:not(.one) .card p,.glance p,.aud p{font-size:16px!important;line-height:1.6;color:var(--body);margin:0}
.cards:not(.one) .card .more{border:0!important;padding-top:12px}
@media (min-width:700px){.cards:not(.one),.glance,.aud{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:auto!important}}
@media (min-width:980px){
 .cards:not(.one),.glance{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .aud{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 .cards.five{grid-template-columns:1fr!important}
 .cards.five>*{grid-column:auto!important}
 .cards.five .card{display:grid!important;grid-template-columns:56px minmax(0,4fr) minmax(0,7fr);gap:0 32px;align-items:baseline;padding:24px 0 26px!important}
 .cards.five .card:before{margin:0}
 .cards.five .card:last-child{border-bottom:1px solid var(--rule)!important}
}
.cards.one .card{background:none!important;border:0!important;border-top:2px solid var(--navy)!important;border-bottom:1px solid var(--rule)!important;padding:28px 0!important}
/* products: 4 main, larger, uniform light-grey ground */
.pgrid{gap:24px!important}
.pgrid .ph img{background:#F1F2F4!important;border:0!important;padding:28px!important;aspect-ratio:1/1;object-fit:contain}
@media (min-width:980px){.pgrid.n4{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
/* gallery: uniform 3:2, lightbox */
.ggrid .ph img{aspect-ratio:3/2!important;object-fit:cover}
@media (min-width:980px){.ggrid.g2.n6{grid-template-columns:repeat(3,minmax(0,1fr))!important}.ggrid.g2.n2{grid-template-columns:1fr 1fr!important}}
.ggrid[data-lb] img{cursor:zoom-in}
.lb{position:fixed;inset:0;z-index:200;background:rgba(6,12,26,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 20px 24px}
.lb img{max-width:min(1400px,100%);max-height:calc(100vh - 140px);object-fit:contain;display:block}
.lb p{color:#E7E3DA;font-family:var(--sans);font-size:14px;margin:14px 0 0;text-align:center}
.lb button{position:absolute;top:14px;right:16px;background:none;border:1px solid rgba(255,255,255,.5);color:#fff;font:600 14px var(--sans);padding:10px 16px;cursor:pointer}
/* flow diagrams: full content width, legend above */
.aplfig{background:none!important;border:0!important;padding:0!important;margin-top:64px}
.aplfig:before{display:none!important}
.aplsvgwrap{max-width:none!important}
.aplsvg .n1{font-size:22px}.aplsvg .n2,.aplsvg .al{font-size:17px}
.apl-leg{justify-content:flex-start!important;border-top:0!important;border-bottom:1px solid var(--rule);margin:0 0 24px!important;padding:0 0 14px!important;font-size:14px!important}
.apl-leg .lg.g{border-top:2px dashed #9A7438!important}
.aplflow .fn-side.r{border-style:solid!important}
/* map: no frame, no gold rule, lighter state lines, larger labels */
.mapfig,.map50 .mapfig{background:none!important;border:0!important;padding:0!important}
.mapfig:before{display:none!important}
.ngmap .st{stroke:#fff;stroke-width:.6}
.ngmap .mk-t{font-size:16px}.ngmap .mk-s{font-size:14px}.ngmap .mk-n{font-size:13px}
.mapfig figcaption{font-size:13px}
/* minimum 13px for captions, labels, footer */
.pc,.pcr,.ph .pc,.ph .pcr,.ggrid.g2 .ph .pc,.ggrid.g2 .ph .pcr,.pgrid .ph .pc,.ph-credit,.h50-cred,.hero.h50 p.h50-cred,.crumbs,.crumbs a,.nmeta,.nkick,.stats-src,.datanote,.caseref,.dgm-label,.pl-k,.h50-rail .rk,.h50-rail .rn,.ptable th,.dtable th,.facts dt,.util,.util a,.chipnav a,.clp-hint{font-size:13px!important}
.foot.v50 .f-disc,.foot.v50 .f-col h2,.foot.v50 .f-coh,.foot.v50 .f-dl dt,.foot.v50 .f-bottom,.foot.v50 .f-legal a,.foot.v50 .totop{font-size:13px!important}
.foot.v50 .f-disc{color:#AEB5C2}
.foot.v50 .f-bottom,.foot.v50 .f-dl dt{color:#AEB5C2}
/* leadership: clean typographic layout (no monogram, no navy block) */
.ld50{border:0!important;background:none!important;border-top:2px solid var(--navy)!important}
.ld-id{background:none!important;color:var(--ink)!important;padding:32px 0 8px!important}
.ld-id:before{display:none}
main .ld50 p.ld-role{color:var(--gold-text)!important;font-size:13px}
.ld50 h3.ld-name{color:var(--navy)!important;font-size:48px}
main .ld50 p.ld-aka{color:#4A5366!important;font-family:var(--serif)}
.ld-li{color:var(--navy)!important;border-color:var(--navy)!important}
.ld-bio{padding:24px 0 8px!important}
main .ld50 p.ld-lead{font-family:var(--sans)!important;font-size:20px!important;line-height:1.55;color:var(--ink)}
.ld-facts{border-top:1px solid var(--rule)!important;margin-top:32px!important}
.ld-f{padding:24px 24px 24px 0!important}
.ld-f dt{border-top:0!important;padding-top:0!important;font-family:var(--serif)}
@media (min-width:980px){.ld-top{gap:0 80px}.ld-id{padding:48px 0 0!important;justify-content:flex-start!important}.ld-bio{padding:48px 0 0!important;justify-content:flex-start!important}
 .ld50 h3.ld-name{font-size:64px}.ld-f{padding:32px 32px 8px 0!important}.ld-f+.ld-f{padding-left:32px!important}}
/* related-company cards: hairline, equal height */
.relcards{align-items:stretch}
.relcard{background:none!important;border:0!important;border-top:2px solid var(--navy)!important;padding:24px 0 0!important;display:flex;flex-direction:column}
.relcard .tlink{margin-top:auto}
/* home hero – mobile: photo (own 4:3 crop) on top, then title + first sentence + buttons; second sentence after the buttons */
.h50-txt{display:flex;flex-direction:column}
.h50-txt .eyebrow{order:1}.h50-txt h1{order:2}.h50-txt .lead{order:3}.h50-txt .lead2{order:4;margin-top:12px}.h50-txt .btns{order:5}
.hero.h50 .lead2{color:#C9D0DC}
@media (max-width:979px){
 .hero.h50{min-height:0!important;display:block}
 .h50-bg{position:relative!important;inset:auto!important}
 .h50-bg img{height:auto!important;aspect-ratio:4/3;object-position:50% 30%!important}
 .h50-bg:after{background:linear-gradient(0deg,rgba(10,22,48,.55),rgba(10,22,48,0) 40%)!important}
 .h50-in{padding-top:28px!important;padding-bottom:40px!important}
 .hero.h50 .eyebrow{display:none}
 .hero.h50 h1{font-size:36px!important;margin-bottom:16px!important}
 .hero.h50 .lead{font-size:17px!important}
 .h50-txt .btns{order:4;margin-top:22px!important;display:flex;flex-wrap:wrap;gap:10px}
 .h50-txt .btns .btn{flex:1 1 auto;margin:0!important}
 .h50-txt .lead2{order:5;margin-top:28px;padding-top:22px;border-top:1px solid rgba(241,212,150,.2)}
}
/* contrast: grey-on-navy */
.hero.h50 .h50-cred,.ph-credit{color:#AEB5C2!important}
.h50-rail .rk{color:#C9CFDA!important}
.ctaband .cb-in{padding:0!important}
.ctaband.cta-dark{background:var(--navy)!important}
.ctaband.cta-dark:after{display:none}
@media screen and (min-width:980px){.ctaband.cta-dark{padding:96px 0!important}}
.cards .card .bar{display:none!important}
@media (min-width:980px){.cards.one .card{grid-template-columns:minmax(0,4fr) minmax(0,7fr) auto!important;gap:0 48px!important}}
.cards.one .card h3{font-size:30px;font-weight:400;color:var(--navy)}
.pgrid .ph{background:#F1F2F4}
.pgrid .ph img{mix-blend-mode:multiply;padding:12%!important;background:transparent!important}
/* V5.1 min-13px + AA sweep (from computed-style scan) */
.eyebrow,.pagehead .eyebrow,.hero .eyebrow,.nc-c,.nc-d,.stats2 .s,.stats .s,main .s,.rk,.toc p,figcaption,.aplfoot,.cap,dl.contact dt,.lr-h .num,.mapfig figcaption{font-size:13px!important}
.cap{color:#5C4413!important;background:#F1D496!important}
.stats-src,main .s,.mapfig figcaption,.nc-c{color:#4F5868!important}
.lr-h .num{color:var(--gold-text)!important}
.go{color:var(--gold-text)!important}
.stat .s,.stats-sec .stat .s{color:#4A5366!important}
.sec.dark .lr-h .num,.sec.dark .num{color:var(--gold-light)!important}
@media (min-width:980px){.cards.five .card .more{grid-column:3;margin-top:8px!important}}
.foot.v50 .f-dl dd a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(241,212,150,.35)}.foot.v50 .f-dl dd a:hover{border-color:var(--gold-light)}

/* =====================================================================================
   V5.3 STYLE-ONLY LAYER (owner 18:42) – boutique infrastructure-investor restraint
   (refs: Macquarie Asset Management, BII, AIIM). No copy changes, no new assets.
   Type scale – serif (Cormorant Garamond 400 only): 84 hero / 72 H1 / 48 H2 & stats / 30 H3 / 24 H4
                sans (Inter 400–600): 13 label · 15 UI · 16 secondary · 18 body (17 mobile) · 20 lead
   ===================================================================================== */
/* 1 · one serif weight */
h1,h2,h3,h4,.stat .n,.nc-h,.dsub,.aplh,.ld-name,.ld-aka,.pl-t,.h50-rail .rt,.explore span,.foot.v50 .f-top .mail,aside.facts.kf dt,.ld-f dt{font-weight:400!important}
/* 2 · decorative lines, gradients, ornaments removed */
.pagehead:after,.pagehead.plain:after,.pagehead.photo:after,.hero.h50:after,.foot.v50:before,.foot.v50:after{display:none!important;content:none!important}
.stmt50,.sec.dark,.sec.dark.stmt{background:var(--navy)!important;background-image:none!important}
.foot.v50{border-top:0!important}
.stat:before,.stats2 li:before{display:none!important;content:none!important}
/* 3 · labels trimmed (all were duplicates of an adjacent heading/link or ornamental numbering – see change log) */
.pagehead:not(.photo) .eyebrow,.pg-sm .pagehead .eyebrow,.h50-rail .rn,.h50-rail .rk,h2 .num,.lr-h .num,.clp-hint,.sub-k,.stats2 .cap,.cap{display:none!important;content:none!important}
.sub-intro{padding-top:0}
/* 4 · consistent sans steps */
.nav-links a,.btn,.linkrow .btn,.cb-b .btn,.foot.v50 .f-dl dd,.foot.v50 .f-dl dd a,.foot.v50 .f-col a,.roles.crl li span,.ld-li span,.nfoot a,.apl-leg .li,.legal-toc a,.toc a,nav.toc li a,.cards .more,.cards .card .more,.tile,.tile span,.explore .go{font-size:15px!important}
.foot.v50 .f-id,.foot.v50 .f-addr,.ld-f dd,.places .pl-d,p.pl-d,.steps li p,.cards.one .card p,main td,.ptable td,.dtable td{font-size:16px!important}
main dl.contact dd,main dl.contact dd a,main dl.contact .maplink{font-size:18px!important}
.pagehead .lead,main p.lead,.cb-t p{font-size:20px!important;line-height:1.5}
@media (max-width:979px){.pagehead .lead,main p.lead{font-size:18px!important}}
@media (min-width:980px){main .prose p,main p.gintro,main p,main li{font-size:18px}}
main strong,main b,main th,main caption,.toc p,nav.toc p,.relcard .rk,main .stats2 .cap{font-weight:600!important}
main .lr-b .prose p:first-child{font-family:var(--sans)!important;font-weight:400!important}
.lr-b .prose p:first-child{font-size:20px!important;line-height:1.5;color:var(--ink)}
.sec.dark .lr-b .prose p:first-child{color:#fff}
/* 5 · serif steps */
@media (min-width:980px){
 .pagehead h1,.pagehead.plain h1{font-size:72px!important}
 main h2,.cb-t h2,.cta-line .cb-t h2{font-size:48px!important}
 main h3,.cards.one .card h3,.aplh,.cards:not(.one) .card h3,.aud h3,.relcard h3,.ld50 h3.ld-name{font-size:30px!important}
 .glance h4,.dsub,.pl-t,.nc-h,.h50-rail .rt,.ld-aka,main .ld50 p.ld-aka{font-size:24px!important}
 .ld50 h3.ld-name{font-size:48px!important}
 .ld-f dt,aside.facts.kf dt{font-size:48px!important}
}
@media (max-width:979px){
 main h3,.aplh,.cards:not(.one) .card h3,.aud h3,.relcard h3{font-size:24px!important}
 .glance h4,.dsub,.pl-t,.nc-h,.h50-rail .rt{font-size:22px!important}
 .ld-f dt,aside.facts.kf dt{font-size:36px!important}
}
.ptable td a,.ptable td span a,.projgrid td a{font-family:var(--sans)!important;font-weight:600!important;font-size:16px!important}
.steps .sn{font-family:var(--sans)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.08em;color:var(--gold-text)!important;line-height:1}
.sec.dark .steps .sn{color:var(--gold-light)!important}

/* 6 · KAYZ figures – clean large-number stat rows (BII / AIIM / Macquarie pattern) */
.stats-sec{background:#fff!important;border-top:1px solid var(--rule)!important;border-bottom:1px solid var(--rule)!important}
.stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;border-top:1px solid var(--navy)!important;border-bottom:1px solid var(--rule)!important;margin-top:8px}
.stat{border:0!important;padding:28px 20px 30px 0!important}
.stat:nth-child(even){padding-left:20px!important;border-left:1px solid var(--rule)!important}
.stat:nth-child(n+3){border-top:1px solid var(--rule)!important}
.stat .n{font-family:var(--serif)!important;font-weight:400!important;font-size:48px!important;line-height:1!important;letter-spacing:-.01em;color:var(--navy)!important}
.stat .l{font-size:15px!important;line-height:1.45!important;color:#3A4357!important;margin-top:14px!important;font-weight:400!important}
.stat .s{font-size:13px!important;margin-top:6px!important}
.stat .go{font-size:13px!important;font-weight:600;margin-top:12px!important}
@media (min-width:821px){
 .stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 .stat,.stat:nth-child(even){padding:36px 28px 40px!important;border-top:0!important;border-left:1px solid var(--rule)!important}
 .stat:first-child{padding-left:0!important;border-left:0!important}
 .stat .n{font-size:64px!important}
}
@media (min-width:1181px){.stat .n{font-size:72px!important}}
.stats-foot,.stats-src{max-width:720px}
.stats2{display:grid!important;grid-template-columns:1fr;gap:0!important;border-top:0!important;padding-top:0!important;margin-top:0!important}
.stats2 li{display:block!important;padding:14px 0!important;border-bottom:1px solid var(--rule);font-size:15px!important;color:#3A4357}
@media (min-width:821px){.stats2{grid-template-columns:repeat(4,minmax(0,1fr))}.stats2 li{padding:16px 28px 16px!important;border-left:1px solid var(--rule)}.stats2 li:first-child{padding-left:0!important;border-left:0}}
/* investment-platform KAYZ key facts – same stat treatment */
aside.facts.kf dt{color:var(--navy)!important;line-height:1;padding-top:20px!important;border-bottom:0!important}
aside.facts.kf dd{padding-bottom:20px!important}

/* 7 · boxes → hairline rules */
.checks li,.sec.alt .checks li,.checks.chips li{display:block!important;border:0!important;border-top:1px solid var(--rule)!important;padding:14px 0!important;font-size:16px!important;font-weight:400!important;color:var(--ink)!important;background:none!important}
.sec.dark .checks li{border-top-color:rgba(255,255,255,.18)!important;color:#fff!important}
.checks .ci{display:none!important}
.checks{column-gap:40px!important;border-bottom:1px solid var(--rule)}
.sec.dark .checks{border-bottom-color:rgba(255,255,255,.18)}
.tiles{gap:0 32px!important;margin-top:48px!important;border-bottom:1px solid rgba(255,255,255,.18)}
.tile,.sec.dark .tile{background:none!important;border:0!important;border-top:1px solid rgba(255,255,255,.3)!important;padding:18px 0 20px!important;font-weight:400!important;color:#fff!important}
.tile .ic,.tile .ico{display:none!important}
.ncards{gap:0 48px!important}
.ncard{background:none!important;border:0!important;border-top:1px solid var(--navy)!important;padding:24px 0 0!important}
.ncard img{border-radius:0!important}
.newslist .wrap>.nitem,.nitem{max-width:none!important;margin-left:0!important;margin-right:0!important;background:none!important;border:0!important;border-top:1px solid var(--navy)!important;border-radius:0!important;padding:40px 0 0!important}
.newslist .wrap>.nitem+.nitem{margin-top:72px!important}
.nprint{background:none!important;border:0!important;padding:0!important;font-weight:400!important;color:#4A5366!important;display:block}
.explore{gap:0 48px!important}
.explore a{background:none!important;border:0!important;border-top:1px solid var(--navy)!important;border-bottom:1px solid var(--rule)!important;padding:22px 0!important;gap:16px}
.explore .ci{display:none!important}
.explore .go{color:var(--navy)!important}
.foot.v50 .f-co{border:0!important;background:none!important;padding:0!important;border-top:1px solid rgba(241,212,150,.3)!important;padding-top:18px!important}
.foot.v50 .f-coh{border-bottom:0!important;padding-bottom:0!important}
.foot.v50 .f-disc{background:none!important;border:0!important;border-top:1px solid rgba(255,255,255,.14)!important;padding:28px 0!important}
.foot.v50 .f-top .mail{border-bottom-color:rgba(241,212,150,.5)}
.clp-ic{border-radius:0!important;border:0!important;width:28px!important}
.ld-li{border-radius:0!important}
@media (max-width:820px){.dtable tr,.ptable tr{border:0!important;border-top:1px solid var(--navy)!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding-left:0!important;padding-right:0!important}}
.pgrid .ph{border:0!important}

/* 8 · section-layout variation (template-free, CSS only) */
/* B · Macquarie-style offset: heading across the top, text set in from the left on a second column */
@media (min-width:980px){
 .pg-home #advisory .lr,#distribution .lr,#licensing .lr,#how-it-works .lr,main>section.sec.alt:nth-of-type(5) .lr{display:block!important}
 .pg-home #advisory .lr-h,#distribution .lr-h,#licensing .lr-h,#how-it-works .lr-h,main>section.sec.alt:nth-of-type(5) .lr-h{max-width:880px;margin-bottom:48px}
 .pg-home #advisory .lr-b,#distribution .lr-b,#licensing .lr-b,#how-it-works .lr-b,main>section.sec.alt:nth-of-type(5) .lr-b{margin-left:calc((100% - 56px) / 3.1 + 56px)}
}
/* C · centred statement on navy */
.sec.dark.stmt .lr{display:block!important;text-align:center;max-width:860px;margin:0 auto}
.sec.dark.stmt .lr-h{margin-bottom:28px}
.sec.dark.stmt .lr-h h2{font-size:30px!important;color:var(--gold-light)!important}
.sec.dark.stmt .prose{max-width:none;margin:0 auto}
.sec.dark.stmt .prose p,.sec.dark.stmt .lr-b .prose p:first-child{font-family:var(--sans)!important;font-weight:400!important;font-size:20px!important;line-height:1.55!important;color:#fff!important}
@media (min-width:980px){.sec.dark.stmt .prose p,.sec.dark.stmt .lr-b .prose p:first-child{font-size:24px!important}}
/* D · stacked: heading, two text columns, then a ruled five-item row */
@media (min-width:980px){
 #technology .lr{display:block!important}
 #technology .lr-h{margin-bottom:40px}
 #technology .lr-b .prose{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 56px}
 #technology .lr-b .prose p{margin:0}
}

/* ---- V5.3b (owner 18:48) ---- */
/* weights: Regular 400 minimum; 500 for the hero title, photo page-head titles and stat numbers (Regular read thin on the dark photo) */
.hero.h50 h1,.pagehead.photo h1,.stat .n{font-weight:500!important}
/* number + title text grids with hairline rules (same pattern as .cards/.glance) – replaces icon lists, boxed tiles and icon cards */
.checks,.tiles,.explore{counter-reset:ng;display:grid!important;grid-template-columns:1fr!important;gap:0 40px!important;border-bottom:0!important;list-style:none;padding:0}
.checks li,.sec.alt .checks li,.checks.chips li,.tile,.sec.dark .tile{counter-increment:ng;display:block!important;border:0!important;border-top:1px solid var(--navy)!important;padding:18px 0 26px!important;font-size:17px!important;line-height:1.45!important;color:var(--ink)!important;background:none!important}
.checks li:before,.tile:before{content:counter(ng,decimal-leading-zero);display:block;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--gold-text);margin:0 0 10px;width:auto;height:auto;background:none;clip-path:none;position:static}
.sec.dark .checks li,.sec.dark .tile{border-top-color:rgba(241,212,150,.45)!important;color:#fff!important}
.sec.dark .checks li:before,.sec.dark .tile:before{color:var(--gold-light)}
.tiles{margin-top:56px!important}
@media (min-width:700px){.checks,.checks.chips,.split .checks.chips,.lr-b .checks.chips,.tiles,.explore{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (min-width:980px){.checks,.checks.chips,.split .checks.chips,.lr-b .checks.chips,.explore{grid-template-columns:repeat(3,minmax(0,1fr))!important}.tiles{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
@media (min-width:980px){main .checks li{font-size:18px!important}}
.explore a{display:block!important;border:0!important;border-top:1px solid var(--navy)!important;padding:18px 0 26px!important;color:var(--navy)!important;text-decoration:none}
.explore .xn{display:block;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--gold-text);margin-bottom:10px}
.explore .xt{font-family:var(--serif);font-size:30px;line-height:1.2;font-weight:400}
.explore .go{margin-left:12px;font-size:18px!important}
.explore a:hover .xt{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
/* closing bands: ivory, never navy above the navy footer */
.ctaband.cta-line{background:#F7F4EE!important;border-top:1px solid var(--rule)!important}
.ctaband.cta-line .cb-t h2{color:var(--navy)!important}
.ctaband.cta-line .btn.primary{background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important}
.ctaband.cta-line .btn.ghost{color:var(--navy)!important;border-color:var(--navy)!important}
/* footer: plain text columns, one registration line, no boxes */
.foot.v50 .f-reg{margin:0;color:#C9CFDA;font-size:14px;line-height:1.65;max-width:34em}
.foot.v50 .f-bh{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light);margin:0 0 8px;padding-bottom:14px;border-bottom:1px solid rgba(241,212,150,.16)}
.foot.v50 .f-br{margin:0;color:#C9CFDA;font-size:14px;line-height:1.65}
.foot.v50 .f-br+.f-br,.foot.v50 .f-ph{margin-top:10px}
.foot.v50 .f-ph{margin:14px 0 0;color:#C9CFDA;font-size:14px}
.foot.v50 .f-ph a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(241,212,150,.35)}
.foot.v50 .f-disc{border-top:1px solid rgba(255,255,255,.14)!important;font-size:13px!important;line-height:1.7!important;color:#AEB5C2!important;max-width:none}
.foot.v50 .f-col h2{border-bottom:0!important;padding-bottom:0!important}
/* top bar: contact only */
.util .u-id:empty{display:none}.util-in{justify-content:flex-end}
/* tables ≥14px */
main th,.ptable th,.dtable th,main caption,.ptable caption{font-size:14px!important}
main td,.ptable td,.dtable td,main td span,main td a{font-size:16px!important}
.dtable td:before{font-size:14px!important}
/* leftover off-scale sizes */
main .lr-b .prose p{font-size:18px}
@media (max-width:979px){main .lr-b .prose p{font-size:17px}}
.lr-b .prose p:first-child{font-size:20px!important}
.tlink,a.tlink,.backlink,.dafter{font-size:15px!important}
.ptable td a,.ptable td span,.ptable td span a,.ptable a{font-family:var(--sans)!important;font-weight:600!important;font-size:16px!important}
/* leadership: single typographic bio, no stat row, no image placeholder */
.ld50{border-top:1px solid var(--navy)!important}
@media (min-width:980px){.ld-top{display:grid!important;grid-template-columns:minmax(0,4fr) minmax(0,7fr)!important;gap:0 80px!important}.ld-bio{max-width:720px}}
.ld-bio p{margin:0 0 18px}

/* ---- V5.3c (owner 18:51, mobile) ---- */
/* footer: logo, email, phone, one registration line; link groups as accordions on mobile; one-sentence disclaimer */
.foot.v50 details.f-col>summary{list-style:none;cursor:default}
.foot.v50 details.f-col>summary::-webkit-details-marker{display:none}
.foot.v50 details.f-col>summary h2{margin:0 0 14px!important}
@media (max-width:820px){
 .foot.v50{padding-top:32px!important}
 .foot.v50 .f-top{padding:0 0 18px!important;margin-bottom:18px!important;gap:14px!important}
 .foot.v50 .f-top .logo{height:36px!important}
 .foot.v50 .f-top .mail{font-size:20px!important}
 .foot.v50 .f-grid{display:block!important;padding-bottom:0!important}
 .foot.v50 .f-brand{margin-bottom:14px}
 .foot.v50 .f-reg{font-size:13px!important;line-height:1.55}
 .foot.v50 .f-ph{margin-top:8px!important}
 .foot.v50 .f-ph a{display:inline-flex;align-items:center;min-height:44px}
 .foot.v50 details.f-col{border-top:1px solid rgba(255,255,255,.14)}
 .foot.v50 details.f-col:last-of-type{border-bottom:1px solid rgba(255,255,255,.14)}
 .foot.v50 details.f-col>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer}
 .foot.v50 details.f-col>summary h2{margin:0!important;padding:0!important}
 .foot.v50 details.f-col>summary:after{content:"+";color:var(--gold-light);font:400 22px/1 var(--sans)}
 .foot.v50 details.f-col[open]>summary:after{content:"–"}
 .foot.v50 details.f-col ul{padding:0 0 10px!important}
 .foot.v50 details.f-col a{min-height:44px!important}
 .foot.v50 .f-disc{padding:16px 0!important;margin-top:0!important}
 .foot.v50 .f-bottom{padding:8px 0 10px!important;gap:0!important}
 .foot.v50 .f-legal a,.foot.v50 .totop{min-height:44px!important}
}
/* home: hero quick links desktop only; moved sentence; single project-company link */
@media (max-width:979px){.pg-home .h50-foot .h50-rail{display:none!important}}
.pg-home #platform .split{grid-template-columns:1fr!important}
.pg-home #platform .prose{max-width:720px}
main p.moved{font-size:20px!important;line-height:1.5;color:var(--ink);margin:0 0 18px}
@media (max-width:979px){main p.moved{font-size:18px!important}}
.linkrow .pc-link{align-self:center;margin-right:24px}
@media (min-width:980px){.pg-home #platform .split>div{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0 80px}.pg-home #platform .split>div>*{grid-column:1}.pg-home #platform .split>div>.checks{grid-column:2;grid-row:1/span 2;grid-template-columns:1fr!important;align-self:start;margin-top:8px}}
/* Smart Metering facilities: 2 photos then 'View all photos' (CSS-only toggle) */
.gm-t{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.gm-b{display:none!important;margin-top:24px;cursor:pointer;min-height:44px;align-items:center}
.gm-t:focus-visible+.ggrid+.gm-b{outline:2px solid var(--navy);outline-offset:3px}
@media (max-width:820px){
 .gm-t:not(:checked)+.ggrid.gm>*:nth-child(n+3){display:none!important}
 .gm-b{display:inline-flex!important}
 .gm-t:checked+.ggrid+.gm-b{display:none!important}
}
/* map: plain location list on mobile (map labels would fall below 13px) */
@media (max-width:820px){.map50 .mapfig{display:none!important}.map50 .places{margin-top:24px!important}}
/* fix: backdrop-filter on .top made it the containing block for the fixed mobile menu (menu clipped to header height). Mobile/tablet: no backdrop-filter. */
@media (max-width:1180px){.top{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important}}
/* mobile menu: flat navy, serif top level 24/400, Inter sub-links, no ornament */
@media (max-width:1180px){
 .nav{background:#0E1D3B!important}
 .nav:after{display:none!important}
 .top .nav .nav-links .ni>a{font-family:var(--serif)!important;font-size:24px!important;font-weight:400!important;min-height:56px!important}
 .nav-links a[aria-current=page]{box-shadow:none!important;border-left:2px solid var(--gold);padding-left:14px!important}
}

/* V5.3d tidy: projects table links all Inter; leadership profile link as plain text link; aka line on scale */
.ptable td a,.ptable td a *{font-family:var(--sans)!important;font-weight:600!important;font-size:16px!important}
a.ld-li{border:0!important;background:none!important;padding:0!important;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ld-aka{font-size:20px!important}
a.ld-li svg{display:none!important}
/* ---- V5.4 (owner 19:24) ---- */
/* hero titles on photos: SemiBold 600 (same self-hosted Cormorant Garamond variable font, 400–700 axis) */
.hero.h50 h1,.pagehead.photo h1{font-weight:600!important}
/* What We Do Technology: no extra padding under the last row of items; section ends on the site rhythm */
#technology .tiles>.tile{padding-bottom:0!important}
@media (max-width:979px){#technology .tiles>.tile{padding-bottom:18px!important}#technology .tiles>.tile:last-child{padding-bottom:0!important}#technology h2{margin-bottom:16px!important}}
.prose.doc>:last-child{margin-bottom:0!important}
@media (max-width:699px){.sec .cards>.card:last-child{padding-bottom:0!important}}
/* ---- V5.5 (owner 19:56): desktop-only density pass. Every rule below is scoped to >=821px; mobile (<=820px) renders exactly as V5.4. ---- */
.ph-side,.st-ph{display:none}
@media (min-width:821px){
 /* 1 · section rhythm: 92px top/bottom (was 120) */
 html body main .sec,html body main .stats-sec,html body main .stmt50{padding-top:92px!important;padding-bottom:92px!important}
 /* same background back-to-back: 64px each + hairline between */
 html body .pg-home #platform,html body main #overview,html body main #deliveries,html body main #approach,html body main #apl-model{padding-bottom:64px!important}
 html body .pg-home .stats-sec,html body main #deliveries,html body main #products,html body main #approach+.ctaband,html body main #manufacturing-facilities{padding-top:64px!important}
 html body main #deliveries>.wrap,html body main #products>.wrap,html body main #approach+.ctaband>.wrap,html body main #manufacturing-facilities>.wrap{border-top:1px solid var(--hair);padding-top:64px}
 html body main .sec.dark.stmt .prose>p:last-child{margin-bottom:0!important}
 /* 2 · text measure: running text columns ~720px max inside the 1200px grid */
 html body main .prose,html body main .gintro,html body main .lr-b .prose,html body .cb-t p,html body .pagehead .lead{max-width:720px}
 /* 3 · two-column sections top-aligned */
 html body .lr{align-items:start!important}
 html body .map50 .map-head{align-items:start!important}
 html body .map50 .places{border-top:0!important}
 html body .map50 .places li:first-child{padding-top:0!important}
 /* 4 · home first section: text, then the three areas as one ruled 3-column row across the grid */
 html body .pg-home #platform .split>div{display:block!important}
 html body .pg-home #platform .split>div>.checks{grid-template-columns:repeat(3,minmax(0,1fr))!important;margin:36px 0 0!important;max-width:none}
 /* 6 · inner headers: plain navy 240px; with photo 400px, photo in the right half */
 html body main .pagehead.plain{min-height:240px;box-sizing:border-box;display:flex;align-items:center}
 html body main .pagehead.plain>.wrap{padding-top:28px!important;padding-bottom:36px!important;width:100%}
 /* 5 · statement band: text left half, photo right half */
 /* 7 · news: two-column card grid, uniform 3:2 images on top */
 html body main[data-pg=news] .newslist .wrap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 48px;align-items:start}
 html body main[data-pg=news] .newslist .wrap>article.nitem{display:flex!important;flex-direction:column;margin:0!important;padding:0!important;border:0!important;max-width:none!important}
 html body main[data-pg=news] .nitem>figure{order:-1;margin:0 0 22px!important;max-width:none!important;width:100%}
 html body main[data-pg=news] .nitem>figure img{width:100%!important;height:auto!important;aspect-ratio:3/2;object-fit:cover;display:block;max-width:none!important}
 html body main[data-pg=news] .nitem.np>figure img{object-position:50% 0}
 html body main[data-pg=news] .newslist .nitem>figure.pclip{padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
 html body main[data-pg=news] .nitem>figure.pclip>a{display:block;border:0!important;padding:0!important}
 html body main[data-pg=news] .nitem>figure figcaption{margin-top:8px}
 html body main[data-pg=news] .nitem .nprint{display:none}
 html body main[data-pg=news] .nitem h2{font-size:30px!important;line-height:1.2!important;margin:6px 0 10px!important}
 html body main[data-pg=news] .nitem .prose{margin-top:12px}
 /* 8 · leadership: larger bio type, single readable column */
 html body main[data-pg=leadership] .ld-bio p{font-size:19px!important;line-height:1.6!important}
 html body main[data-pg=leadership] .ld-bio p.ld-lead{font-size:22px!important;line-height:1.5!important}
 html body main[data-pg=leadership] .ld-id,html body main[data-pg=leadership] .ld-bio{padding-top:8px!important}
 html body main[data-pg=leadership] .ld-bio{max-width:720px!important}
 html body main[data-pg=leadership] #leadership h2{margin-bottom:36px!important}
}
@media (min-width:980px){
 /* 3 · was the stepped offset (title above, text set in a column): now title above, content from the same left edge */
 html body #distribution .lr-b,html body #licensing .lr-b,html body #how-it-works .lr-b,html body main>section.sec.alt:nth-of-type(5) .lr-b,html body .pg-home #advisory .lr-b{margin-left:0!important}
 html body .pg-home #advisory .lr-h,html body #distribution .lr-h,html body #licensing .lr-h,html body #how-it-works .lr-h,html body main>section.sec.alt:nth-of-type(5) .lr-h{margin-bottom:28px!important}
 /* 2 · type scale */
 html body main h2,html body .cb-t h2{font-size:44px!important;line-height:1.1!important}
 html body main .sec h2{margin-bottom:28px}
 html body main aside.facts h2{font-size:13px!important}
 html body main .places .pl-d,html body main p.pl-d,html body main dd,html body main .ld-f dd,html body main td,html body main .ptable td,html body main .dtable td,html body main td span,html body main .card p,html body main li p,html body main .steps li p,html body main .cards.one .card p{font-size:17px!important}
 html body main .tile span,html body main li span:not(.n):not(.nw),html body main p.dafter{font-size:17px!important}
 html body main .stat .l{font-size:16px!important}
 html body .ctaband .cb-t h2,html body .ctaband.cta-line .cb-t h2{font-size:44px!important}
 html body main aside.facts dd,html body main .cards:not(.one) .card p,html body main .cards .card p,html body main .glance p,html body main .aud p,html body main .sec li p,html body main .sec.alt li p{font-size:17px!important}
 html body main .sec.dark.stmt .prose p,html body main .sec.dark.stmt .lr-b .prose p:first-child,html body main .lr-b .prose p:first-child{font-size:21px!important}
}
@media (min-width:980px){
 /* 6 · plain navy header (240px): crumbs row, then title left and intro right, top-aligned */
 html body main .pagehead.plain:not(.ph55)>.wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,540px);column-gap:64px;align-items:start}
 html body main .pagehead.plain:not(.ph55)>.wrap>*{grid-column:1}
 html body main .pagehead.plain:not(.ph55)>.wrap>.crumbs{grid-column:1/-1}
 html body main .pagehead.plain:not(.ph55)>.wrap>.lead{grid-column:2;grid-row:2/span 3;margin:8px 0 0!important;font-size:19px!important;line-height:1.55!important}
 html body main .pagehead.plain>.wrap>.crumbs{margin-bottom:20px!important}
 html body main .pagehead.plain h1{font-size:60px!important;line-height:1.08!important}
}
@media (min-width:980px){
 /* 5 · 6 · photo halves from 980px (821–979px keeps the plain navy header / centred statement) */
 html body main .pagehead.plain.ph55{min-height:400px;position:relative}
 html body main .pagehead.ph55>.wrap>*{max-width:calc(50% - 48px)}
 html body main .pagehead.ph55 .netpat{display:none}
 html body .ph-side{display:block;position:absolute;top:0;right:0;bottom:0;width:50%;margin:0;overflow:hidden}
 html body .ph-side img{width:100%;height:100%;object-fit:cover;display:block}
 html body .ph-side figcaption,html body .st-ph figcaption{position:absolute;right:12px;bottom:10px;margin:0;padding:3px 8px;background:rgba(14,29,59,.72);color:#fff!important;font-size:13px!important;line-height:1.4}
 html body main .stmt50.st55{position:relative;min-height:440px;display:flex;align-items:center}
 html body main .stmt50.st55>.wrap{width:100%}
 html body main .stmt50.st55 .st-in{max-width:calc(50% - 64px);margin:0!important;text-align:left}
 html body main .stmt50.st55 .st-q p{font-size:36px!important;line-height:1.25!important;text-wrap:pretty}
 html body .st-ph{display:block;position:absolute;top:0;right:0;bottom:0;width:50%;margin:0;overflow:hidden}
 html body .st-ph img{width:100%;height:100%;object-fit:cover;display:block}
}

/* ---- V5.7 (layout-only upgrade on V5.5; copy unchanged) ---- */
/* Desktop (>=981px) only. Mobile (<=820px) rules are intentionally untouched,
   except the footer tagline which reuses a verbatim V5.5 sentence and scales down on mobile. */
@media (min-width:981px){
  /* 8 · section rhythm + type scale: 220px at 981px, 240px at 1181px */
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:220px!important;padding-bottom:220px!important}
  html body main h2,html body .cb-t h2{font-size:48px!important;line-height:1.08!important}
  html body main .prose p,html body main p.gintro,html body main p{font-size:18px!important;line-height:1.65!important}
  html body main .pagehead .lead,html body main p.lead{font-size:21px!important;line-height:1.55!important}
  /* 1 · home hero: full viewport, big title, rail as hero footer band */
  html body .hero.h50{min-height:100svh!important;min-height:100vh!important}
  html body .hero.h50 .h50-in{padding-top:96px!important;padding-bottom:64px!important}
  html body .hero.h50 h1{font-size:64px!important;line-height:1.02!important;max-width:14em!important}
  html body .hero.h50 .lead{font-size:21px!important;line-height:1.6!important;max-width:36em!important}
  html body .hero.h50 .btns{margin-top:40px!important}
  html body .hero.h50 .btn{padding:17px 30px!important;font-size:16px!important}
  html body .hero.h50 .h50-foot{padding-top:8px!important;padding-bottom:8px!important}
  html body .hero.h50 .h50-rail ol{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0 48px!important}
  html body .hero.h50 .h50-rail li+li{border-top:0!important}
  html body .hero.h50 .h50-rail a{grid-template-columns:40px 1fr 24px!important;padding:24px 0!important}
  html body .hero.h50 .h50-rail .rt{font-size:24px!important;line-height:1.2!important}
  html body .hero.h50 .h50-rail .rk{font-size:12px!important}
  html body .hero.h50 .h50-cred{padding:14px 0 20px!important;font-size:13px!important}
  /* 4 · inner page heads: 560-640px, full-bleed photo, title at the bottom */
  html body main .pagehead{min-height:600px!important;display:flex!important;align-items:flex-end!important}
  html body main .pagehead .wrap{width:100%!important;padding-top:48px!important;padding-bottom:72px!important}
  html body main .pagehead h1{font-size:64px!important;line-height:1.04!important}
  html body main .pagehead.plain.ph55 .ph-side{width:100%!important}
  html body main .pagehead.plain.ph55 .ph-side:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,40,.96) 0%,rgba(10,22,48,.88) 45%,rgba(12,26,56,.45) 100%),linear-gradient(0deg,rgba(8,18,40,.85) 0%,rgba(8,18,40,0) 45%)}
  html body main .pagehead.plain.ph55 .ph-side img{object-position:50% 45%!important}
  html body main .pagehead.plain.ph55 .ph-side figcaption{z-index:2}
  html body main .pagehead.plain.ph55>.wrap>*{max-width:none!important}
  html body main .pagehead.plain.ph55>.wrap>.lead{max-width:44em!important}
  html body main .pagehead.photo .wrap{padding-top:48px!important;padding-bottom:72px!important}
  html body main .pagehead.plain .wrap{padding-top:48px!important;padding-bottom:72px!important}
  /* 3 · statement band: full-bleed photo behind the quote */
  html body main .stmt50.st55{min-height:600px!important}
  html body main .stmt50.st55 .st-ph{width:100%!important}
  html body main .stmt50.st55 .st-ph:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,18,40,.95) 0%,rgba(10,22,48,.85) 50%,rgba(12,26,56,.35) 100%)}
  html body main .stmt50.st55 .st-ph figcaption{z-index:2}
  html body main .stmt50.st55 .st-in{max-width:640px!important;margin:0!important;text-align:left!important}
  html body main .stmt50.st55 .st-q p{font-size:44px!important;line-height:1.25!important}
  html body main .sec.dark.stmt .prose p,html body main .sec.dark .prose p{font-size:21px!important;line-height:1.6!important}
  /* 2 · stats band: navy full band, gold numbers 48-56px */
  html body main .stats-sec{background:#112347!important;color:#fff!important;border-top:0!important;border-bottom:0!important}
  html body main .stats-sec h2.st-h{color:#fff!important;font-size:48px!important}
  html body main .stats-sec .eyebrow{color:#E9C98A!important}
  html body main .stats-sec .stats{border-top:1px solid rgba(241,212,150,.35)!important;border-bottom:0!important}
  html body main .stats-sec .stat{border:0!important;padding:28px 28px 30px 0!important}
  html body main .stats-sec .stat .n{color:#BF9B5D!important;font-size:52px!important}
  html body main .stats-sec .stat .l{color:#E7E3DA!important;font-size:16px!important}
  html body main .stats-sec .stat .s{color:#AEB5C2!important}
  html body main .stats-sec .stats-foot{color:#C9CFDA!important}
  html body main .stats-sec .stats-src{color:#8A93A3!important}
  html body main .stats-sec p a,html body main .stats-sec .stats-foot a{color:#E9C98A!important}
  /* 3 · alternating rhythm: full-width gallery/hero images, taller cards */
  html body main .sec .hero-img img,html body main .ggrid figure img{width:100%!important;object-fit:cover!important}
  html body main .sec .hero-img img{height:520px!important}
  html body main .cards:not(.one) .card,html body main .glance li,html body main .aud li{padding:36px 0 40px!important}
  html body main .cards:not(.one) .card h3,html body main .glance h4,html body main .aud h3{font-size:28px!important;line-height:1.2!important}
  /* 6 · home news cards: vertical two-column large cards, image >=280px */
  html body main .ncards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:48px!important}
  html body main .ncard{display:block!important;padding:0!important;grid-template-columns:none!important;border-top:2px solid #BF9B5D!important}
  html body main .ncard img{width:100%!important;height:300px!important;object-fit:cover!important;display:block!important}
  html body main .ncard .nc-t{display:flex!important;flex-direction:column!important;gap:6px!important;padding:22px 0 8px!important}
  html body main .ncard .nc-h{font-size:26px!important;line-height:1.25!important}
  html body main .ncard .nc-d,html body main .ncard .nc-c{font-size:14px!important}
  /* 6 · news page cards: keep 2-col, enforce image height >=280px, title 28px */
  html body main[data-pg=news] .newslist .nitem>figure img{min-height:300px!important}
  html body main[data-pg=news] .newslist .nitem h2{font-size:28px!important;line-height:1.25!important}
  /* 5 · Nigeria map: navy panel, gold markers, large labels */
  html body main .sec.map50{background:#112347!important;color:#fff!important}
  html body main .sec.map50 h2{color:#fff!important}
  html body main .sec.map50 .gintro{color:#E7E3DA!important}
  html body main .sec.map50 .mapfig{background:#0A1630!important;border:1px solid rgba(191,155,93,.45)!important;padding:36px 36px 22px!important}
  html body main .sec.map50 .ngmap .st{fill:#1E3A66!important;stroke:#112347!important;stroke-width:1!important}
  html body main .sec.map50 .ngmap .st.hi{fill:#2A4A7A!important}
  html body main .sec.map50 .ngmap .mk-h{fill:rgba(191,155,93,.35)!important}
  html body main .sec.map50 .ngmap .mk-c{fill:#BF9B5D!important;stroke:#fff!important;stroke-width:2!important}
  html body main .sec.map50 .ngmap .mk-l{stroke:#BF9B5D!important;stroke-width:1.2!important}
  html body main .sec.map50 .ngmap .mk-t{font-size:19px!important;fill:#fff!important}
  html body main .sec.map50 .ngmap .mk-s{font-size:13px!important;fill:#E7E3DA!important} /* 13px, not 15px: the Aba sub-label (left-anchored) would otherwise clip past the SVG left edge */
  html body main .sec.map50 .ngmap .mk-n{font-size:13px!important;fill:#AEB5C2!important}
  html body main .sec.map50 .mapfig figcaption{color:#AEB5C2!important;font-size:13px!important}
  html body main .sec.map50 .places li{padding:22px 0!important}
  html body main .sec.map50 .places .pl-t{font-size:22px!important;color:#fff!important}
  html body main .sec.map50 .places .pl-k{font-size:13px!important;color:#E9C98A!important}
  html body main .sec.map50 .places .pl-d{font-size:17px!important;color:#E7E3DA!important}
  /* 7 · footer: gold rule + large positioning line (verbatim V5.5 sentence, see build.py), 4 aligned columns, one-line bottom */
  html body .foot.v50{border-top:4px solid #BF9B5D!important;padding-top:56px!important}
  html body .foot.v50 .f-tag{font-family:var(--serif)!important;font-weight:500!important;font-size:30px!important;line-height:1.3!important;color:#fff!important;max-width:none!important;margin:0 0 44px!important;padding-top:36px!important;border-top:1px solid rgba(241,212,150,.35)!important}
  html body .foot.v50 .f-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:56px!important;align-items:start!important;padding-bottom:40px!important}
  html body .foot.v50 .f-col a{font-size:16px!important;min-height:44px!important}
  html body .foot.v50 .f-reg{font-size:15px!important;line-height:1.6!important}
  html body .foot.v50 .f-bottom{flex-direction:row!important;align-items:center!important;justify-content:space-between!important;flex-wrap:nowrap!important;font-size:14px!important;padding:24px 0 28px!important}
  html body .foot.v50 .f-bottom .copy{white-space:nowrap!important}
}
@media (min-width:1181px){
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:240px!important;padding-bottom:240px!important}
  html body main h2,html body .cb-t h2{font-size:52px!important}
  html body .hero.h50 h1{font-size:72px!important}
  html body main .pagehead{min-height:640px!important}
  html body main .pagehead h1{font-size:72px!important}
  html body main .stats-sec .stat .n{font-size:56px!important}
  html body main .stats-sec h2.st-h{font-size:52px!important}
  html body .foot.v50 .f-tag{font-size:32px!important}
}
@media (max-width:980px){
  html body .foot.v50 .f-tag{font-family:var(--serif)!important;font-size:20px!important;line-height:1.4!important;color:#fff!important;margin:0 0 28px!important;padding-top:24px!important;border-top:1px solid rgba(241,212,150,.35)!important}
}

/* V5.7 fix: primary buttons inside the navy stats band must stay gold-on-navy (was navy-on-navy, invisible) */
@media (min-width:981px){
  html body main .stats-sec .btn.primary{background:#BF9B5D!important;border-color:#BF9B5D!important;color:#0A1630!important}
  html body main .stats-sec .btn.ghost{color:#fff!important;border-color:rgba(255,255,255,.6)!important}
}

/* ---- V5.8 (layout-only, on V5.7; copy unchanged) ---- */
/* 1 · Mobile (<981px) stats band: navy band, gold numbers, redone for phone size.
   Desktop (>=981px) V5.7 rules are untouched by this block. */
@media (max-width:980px){
  html body main .stats-sec{background:#112347!important;color:#fff!important;border-top:0!important;border-bottom:0!important;padding-top:64px!important;padding-bottom:64px!important}
  html body main .stats-sec h2.st-h{color:#fff!important}
  html body main .stats-sec .eyebrow{color:#E9C98A!important}
  html body main .stats-sec .stats{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;border-top:1px solid rgba(241,212,150,.35)!important;border-bottom:0!important}
  html body main .stats-sec .stat{border:0!important;border-top:1px solid rgba(241,212,150,.35)!important;padding:20px 14px 22px 0!important}
  html body main .stats-sec .stat:nth-child(even){padding-left:14px!important;border-left:1px solid rgba(241,212,150,.25)!important}
  html body main .stats-sec .stat .n{color:#BF9B5D!important;font-size:40px!important;line-height:1!important}
  html body main .stats-sec .stat .l{color:#E7E3DA!important;font-size:14px!important}
  html body main .stats-sec .stat .s{color:#AEB5C2!important}
  html body main .stats-sec .stats-foot{color:#C9CFDA!important}
  html body main .stats-sec .stats-src{color:#8A93A3!important}
  html body main .stats-sec p a,html body main .stats-sec .stats-foot a{color:#E9C98A!important}
  html body main .stats-sec .btn.primary{background:#BF9B5D!important;border-color:#BF9B5D!important;color:#0A1630!important}
  html body main .stats-sec .btn.ghost{color:#fff!important;border-color:rgba(255,255,255,.6)!important}
  /* 1 · Mobile home news cards: single-column vertical large cards */
  html body main .ncards{display:grid!important;grid-template-columns:1fr!important;gap:32px!important}
  html body main .ncard{display:block!important;padding:0!important;border-top:2px solid #BF9B5D!important}
  html body main .ncard img{width:100%!important;height:230px!important;object-fit:cover!important;display:block!important}
  html body main .ncard .nc-t{display:flex!important;flex-direction:column!important;gap:6px!important;padding:18px 0 8px!important}
  html body main .ncard .nc-h{font-size:22px!important;line-height:1.3!important}
  html body main .ncard .nc-d,html body main .ncard .nc-c{font-size:13px!important}
  /* 1 · Mobile news-page cards: single column, full-width 230px image on top */
  html body main[data-pg=news] .newslist .wrap{display:grid!important;grid-template-columns:1fr!important;gap:48px!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem{display:flex!important;flex-direction:column!important;margin:0!important}
  html body main[data-pg=news] .nitem>figure{order:-1!important;margin:0 0 18px!important;width:100%!important}
  html body main[data-pg=news] .nitem>figure img{width:100%!important;height:230px!important;aspect-ratio:auto!important;object-fit:cover!important;display:block!important}
  html body main[data-pg=news] .nitem h2{font-size:24px!important;line-height:1.3!important}
  /* Map, mobile menu, touch targets and collapsible footer rules are intentionally untouched. */
}
/* 2 · Desktop stats band bottom padding only: 220/240px -> 96px.
   Top padding and every other section's spacing are untouched. */
@media (min-width:981px){
  html body main .stats-sec{padding-bottom:96px!important}
}
@media (min-width:1181px){
  html body main .stats-sec{padding-bottom:96px!important}
}

/* ---- V5.9 (spacing-only tightening experiment, on V5.8; copy, colours, fonts, structure, photos unchanged) ---- */
/* Desktop (>=981px): section padding 220px -> 120px; inner pagehead 600px -> 380px; hero 100vh -> 85vh;
   internal rhythm ~0.6x. H2 font sizes unchanged (48px / 52px at >=1181px). Footer untouched. */
@media (min-width:981px){
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:120px!important;padding-bottom:120px!important}
  html body main .stats-sec{padding-bottom:120px!important}
  html body main .pagehead{min-height:380px!important}
  html body main .pagehead .wrap,html body main .pagehead.photo .wrap,html body main .pagehead.plain .wrap{padding-top:32px!important;padding-bottom:44px!important}
  html body .hero.h50{min-height:85svh!important;min-height:85vh!important}
  html body .hero.h50 .h50-in{padding-top:64px!important;padding-bottom:48px!important}
  html body .hero.h50 .btns{margin-top:28px!important}
  html body .hero.h50 .h50-rail a{padding:16px 0!important}
  html body .hero.h50 .h50-cred{padding:10px 0 14px!important}
  html body main .sec h2{margin-bottom:17px!important}
  html body main .stats-sec h2.st-h{margin-bottom:28px!important}
  html body main .prose p{margin-bottom:14px!important}
  html body main .stats-sec .stat{padding:20px 20px 22px 0!important}
  html body main .cards:not(.one) .card,html body main .glance li,html body main .aud li{padding:24px 0 28px!important}
  html body main .ncards{gap:32px!important}
  html body main .ncard .nc-t{padding:16px 0 6px!important}
  html body main .sec.map50 .mapfig{padding:24px 24px 16px!important}
  html body main .sec.map50 .places li{padding:16px 0!important}
  html body main .stmt50 .st-q{margin-bottom:22px!important}
  html body main .stmt50 .kicker{margin-bottom:24px!important}
}
/* Desktop large tier (>=1181px): section padding 240px -> 140px; inner pagehead 640px -> 420px. */
@media (min-width:1181px){
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:140px!important;padding-bottom:140px!important}
  html body main .stats-sec{padding-bottom:120px!important}
  html body main .pagehead{min-height:420px!important}
  html body main .sec h2{margin-bottom:20px!important}
}
/* Mobile (<981px): section padding 64px -> 48px; mobile stats band 64px -> 48px.
   Mobile news-card image height stays 230px; mobile hero height, menu, touch targets, footer untouched. */
@media (max-width:980px){
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:48px!important;padding-bottom:48px!important}
  html body main .stats-sec{padding-top:48px!important;padding-bottom:48px!important}
}

/* ---- V5.11 (desktop-density experiment on V5.10; copy, colours, fonts, structure, photos unchanged; mobile untouched) ---- */
/* Measured V5.10 baseline at 1440px viewport: .wrap rendered 1296px wide, max-width 1296px
   (= 1200px content + 2x48px gutters), header/footer wraps also 1296px; section padding
   120px (981-1180) / 140px (>=1181); pagehead min-height 380/420px; hero 85vh (765px at 900px
   viewport height); statement band .st55 min-height 600px (total height 605px).
   NOTE on the brief's "add ~160px, cap 1280px": the measured baseline max-width (1296px)
   already exceeds the 1280px cap, so that pair of numbers cannot both be applied literally
   (adding 160px would give 1456px, capping at 1280px would narrow the container). The intent
   (wider desktop content, less side emptiness at 1440px) is implemented as: .wrap max-width
   1296px -> 1360px (total, border-box; content 1200px -> 1264px, side margins at 1440px
   72px -> 40px each). At 981-1180px the container is viewport-limited, so the width rule
   changes nothing there. Prose columns are widened 720px -> 820px at >=1181px only, so the
   wider container does not just add empty space to the right of single-column text. */
@media (min-width:981px){
  html body .wrap{max-width:1360px!important}
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:84px!important;padding-bottom:84px!important}
  html body main .pagehead{min-height:300px!important}
  html body .hero.h50{min-height:76svh!important;min-height:76vh!important}
  html body main .stmt50.st55{min-height:0!important}
  html body main .sec h2{margin-bottom:14px!important}
  html body main .stats-sec h2.st-h{margin-bottom:24px!important}
  html body main .prose p{margin-bottom:12px!important}
  html body .foot.v50{padding-top:50px!important}
  html body .foot.v50 .f-grid{gap:39px!important;padding-bottom:34px!important}
  html body .foot.v50 .f-disc{padding-top:20px!important;padding-bottom:20px!important}
  html body .foot.v50 .f-bottom{padding-top:15px!important;padding-bottom:13px!important}
}
@media (min-width:1181px){
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband{padding-top:96px!important;padding-bottom:96px!important}
  html body main .pagehead{min-height:340px!important}
  html body main .sec h2{margin-bottom:16px!important}
  html body main .prose,html body main .gintro,html body main .pagehead .lead{max-width:820px!important}
}

/* ---- V5.12 (de-blanking pass on V5.11; copy, colours, fonts, sizes, structure, photos unchanged; mobile untouched) ---- */
/* Measured V5.11 baseline at 1440px (Chromium, headings counted by geometry): normal
   section pairs stack bottom-pad 96 + top-pad 96 = ~192-221px content-to-content;
   home stats tail 109, news teaser tail 94 / gap 170, contact band tail 70;
   footer content gaps: email->positioning 97, positioning->columns 44,
   columns->disclaimer 114, disclaimer->bottom bar 59.
   Fix: desktop section top 40 / bottom 48 (photo/hero-adjacent tops 56), footer
   internals cut ~40-55% each. Link min-heights untouched, so tap targets are intact. */
@media (min-width:981px){
  html body main .sec,html body main .stats-sec,html body main .stmt50,html body main .ctaband,html body main .ctaband.cta-line{padding-top:40px!important;padding-bottom:48px!important}
  html body main .pagehead + .sec,html body main .pagehead + .stats-sec,html body main .hero + .sec,html body main .hero + .stats-sec{padding-top:56px!important}
  html body main .chipnav + .sec,html body main .stats-sec + .sec{padding-top:40px!important}
  html body .pg-home .stats-sec,html body main #deliveries,html body main #products,html body main #approach + .ctaband,html body main #manufacturing-facilities{padding-top:40px!important}
  html body .pg-home #platform,html body main #overview,html body main #deliveries,html body main #approach,html body main #apl-model{padding-bottom:48px!important}
  html body main #deliveries > .wrap,html body main #products > .wrap,html body main #approach + .ctaband > .wrap,html body main #manufacturing-facilities > .wrap{padding-top:16px!important}
  html body .foot.v50{padding-top:28px!important}
  html body .foot.v50 .f-top{padding-bottom:16px!important;margin-bottom:16px!important}
  html body .foot.v50 .f-tag{padding-top:20px!important;margin-bottom:20px!important}
  html body .foot.v50 .f-grid{padding-bottom:12px!important}
  html body .foot.v50 .f-disc{margin-top:24px!important;padding-top:20px!important;padding-bottom:12px!important}
  html body .foot.v50 .f-bottom{padding-top:8px!important;padding-bottom:10px!important}
}

/* ---- V5.13 (final full-site audit on V5.12; copy, colours, fonts, sizes, structure, photos unchanged; mobile untouched) ---- */
/* Re-audit at 1440px found zero tails >100px and only one gap >120px:
   Smart Metering #software (Systems) gap 134px = tail 76px + next-section head 58px.
   Fix: Systems bottom padding 48 -> 28px (desktop only), expected tail ~56px, gap ~114px.
   Guardian news clip: fixed double-prefixed srcset in build.py (see build.py V5.13 note). */
@media (min-width:981px){
  html body main .sec#software{padding-bottom:28px!important}
}

/* ---- V5.14 (News page layout redo on V5.13; copy, colours, fonts, type scale, structure, photos unchanged; other 13 pages untouched) ---- */
/* Diagnosis: the old 2-col news grid held only 3 items, so row 2 left an empty
   cell (large white void bottom-right), and the tall portrait Guardian clip
   sat beside landscape visit photos at uneven heights.
   Fix (CSS only, news page scoped to main[data-pg=news] .newslist):
   Guardian becomes a full-width feature row (image left ~45%, text right);
   the two visit items fill one 2-col row exactly, with uniform photo heights.
   No text, alt, caption, link or photo file is changed. */
@media (min-width:981px){
  html body main[data-pg=news] .newslist .wrap{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:56px 48px!important;align-items:start!important}
  /* Feature row: Guardian spans both columns, internally image | text */
  html body main[data-pg=news] .newslist .wrap>article.nitem.np{grid-column:1/-1!important;display:grid!important;grid-template-columns:45% 1fr!important;column-gap:48px!important;align-items:start!important;flex-direction:row!important;margin:0!important;padding:0!important;border:0!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.np>figure{grid-column:1!important;grid-row:1/span 4!important;order:0!important;margin:0!important;width:100%!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.np>figure img{height:380px!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:50% 0!important;width:100%!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.np>*:not(figure){grid-column:2!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.np .nkick{margin:0!important}
  /* Visit row: two cards fill the row exactly, uniform 300px photos, top-aligned */
  html body main[data-pg=news] .newslist .wrap>article.nitem.wp>figure img{height:300px!important;min-height:300px!important;aspect-ratio:auto!important;object-fit:cover!important;width:100%!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.wp h2{font-size:28px!important;line-height:1.25!important}
}
@media (max-width:980px){
  /* Mobile: feature and visit rows both stack single-column, image on top, 240px */
  html body main[data-pg=news] .newslist .wrap>article.nitem>figure img{height:240px!important}
}

/* ---- V5.15 (Home-only AMETS-inspired trial on V5.14; copy, palette, fonts, type scale, photos, other 13 pages unchanged) ---- */
/* Reference: amets.com.au/investment-opportunities (measured 2026-10-28): all sans, regular-medium
   heading weights, H1 56px desktop, 1200px content, ~100px section padding, 30px card gaps,
   flat, radius 0, uppercase main headings, alternating colour blocks, narrowed paragraphs.
   Borrowed here: rhythm and cleanliness ONLY, not raw values or colours. NOT borrowed, on purpose:
   - AMETS teal: INTERSTE stays navy #112347 / gold #BF9B5D / ivory (palette unchanged).
   - AMETS ~100px section padding: NOT restored; home stays at the V5.12/V5.13 40/48px
     tightening the user asked for after complaining about whitespace.
   - AMETS all-sans headings: NOT adopted; INTERSTE headings stay Cormorant serif, body Inter.
   All rules below are scoped to main.pg-home (home only). */
/* 1 · Title rhythm: reveal the home section kickers that V5.5-era CSS hides. The label texts
   already exist in index.html (Investment platform / KAYZ CONSORTIUM LIMITED / How we work /
   Advisory / Locations / News / Get in touch); nothing is added, removed or reworded.
   Unified style matches the existing .kicker system: 12px, 600, .2em, uppercase, 32px gold rule.
   Gold-dark on light sections, gold-light on the navy stats/locations bands and the photo band. */
html body main.pg-home .sec .kicker,
html body main.pg-home .stmt50 .kicker,
html body main.pg-home .ctaband .eyebrow,
html body main.pg-home .stats-sec>.wrap>.eyebrow{display:flex!important;align-items:center!important;gap:14px!important;font-family:var(--sans)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.2em!important;text-transform:uppercase!important;margin:0 0 20px!important}
html body main.pg-home .stats-sec>.wrap>.eyebrow,
html body main.pg-home #locations .kicker{color:var(--gold-light)!important}
html body main.pg-home .sec .kicker,
html body main.pg-home .ctaband .eyebrow{color:var(--gold-dk)!important}
/* 2 · Cards unified, desktop only (mobile rail is hidden and mobile cards already stack). */
@media (min-width:981px){
  /* Hero rail (01/02/03): equal-height links, 30px gaps. The middle link used to wrap to
     two lines while its neighbours stayed on one (61/90/61px); links now stretch and centre. */
  html body main.pg-home .hero.h50 .h50-rail ol{gap:0 30px!important}
  html body main.pg-home .hero.h50 .h50-rail li{display:flex!important}
  html body main.pg-home .hero.h50 .h50-rail li a{flex:1!important;height:100%!important;align-content:center!important}
  /* Home news cards: image on top, white body, hairline border, flat, radius 0, 30px gaps,
     equal height via stretch + flex column text block. */
  html body main.pg-home .teaser .ncards{gap:0 30px!important;align-items:stretch!important}
  html body main.pg-home .teaser .ncard{background:#fff!important;border:1px solid var(--rule)!important;border-radius:0!important;box-shadow:none!important;padding:0 0 20px!important;display:flex!important;flex-direction:column!important}
  html body main.pg-home .teaser .ncard img{width:100%!important;height:300px!important;object-fit:cover!important;display:block!important}
  html body main.pg-home .teaser .ncard .nc-t{padding:20px 24px 0!important;flex:1!important;display:flex!important;flex-direction:column!important}
  /* Numbered lists (platform + advisory 01/02/03): column gaps unified to 30px; the hairline
     editorial list style itself is kept, not boxed, so it stays consistent with the site. */
  html body main.pg-home .checks{gap:0 30px!important;column-gap:30px!important}
  /* 4 · Paragraph narrowing: home platform/advisory prose 820px -> 720px (desktop only).
     Hero lead and the statement quote are already half-width / 640px and are untouched. */
  html body main.pg-home #platform .prose,
  html body main.pg-home #advisory .lr-b .prose{max-width:720px!important}
}
/* 3 · Colour alternation: MEASURED, no change made. Home block sequence at 1440px is
   hero photo -> platform white -> stats navy -> statement PHOTO band -> advisory white ->
   locations navy -> news white -> contact ivory -> footer navy. No two same-colour flat
   blocks sit adjacent (the navy stats band is followed by a photo band, not another navy
   flat block), so recolouring any block would break an existing band for no gain. The news
   cards stay on the white teaser section with a hairline border rather than moving the
   section to ivory, which would have created an ivory-ivory adjacency with the contact band. */

/* ---- V5.16 (AMETS four rules rolled out site-wide on V5.15; copy, palette, fonts, type scale, photos unchanged; no deploy) ---- */
/* Reference: amets.com.au/investment-opportunities (measured 2026-10-28). Borrowed: rhythm and
   cleanliness ONLY, not raw values or colours. NOT borrowed, on purpose (same as V5.15):
   - AMETS teal: INTERSTE stays navy #112347 / gold #BF9B5D / ivory #F7F4EE.
   - AMETS ~100px section padding: NOT restored; site stays at the V5.12/V5.13 40/48px tightening.
   - AMETS all-sans headings: NOT adopted; headings stay Cormorant serif, body Inter.
   Scope notes: home already carries the V5.15 rules, so V5.16 rules below are scoped to
   main:not(.pg-home) wherever home already has the same treatment; the news page uses its
   data-pg selector from V5.14. HTML is untouched: every label shown below already exists in
   the page HTML and was only hidden by V5.5-era CSS. */
/* 1 · Title rhythm: reveal the existing hidden labels on inner pages, in the V5.15 unified
   style (12px, 600, .2em, uppercase, 32px gold rule via the existing :before rules on
   .pagehead/.stats-sec/.cb-t .eyebrow; a matching :before is added for .casehead).
   Gold-light on dark backgrounds (pagehead, stats band), gold-dark on light backgrounds
   (contact band, case study head). Audit result: section-internal kickers (.sec .kicker /
   .sec p.eyebrow) do not exist on any inner page, so none are invented; the only labels
   restored are: the pagehead eyebrow on every inner page, the "Get in touch" contact-band
   eyebrow, the advisory "Project case study" casehead eyebrow, and the smart-metering
   "OVERVIEW · KAYZ CONSORTIUM LIMITED" stats eyebrow. */
html body main:not(.pg-home) .pagehead .eyebrow,
html body main:not(.pg-home) .ctaband .eyebrow,
html body main:not(.pg-home) .casehead .eyebrow,
html body main:not(.pg-home) .stats-sec>.wrap>.eyebrow{display:flex!important;align-items:center!important;gap:14px!important;font-family:var(--sans)!important;font-size:12px!important;font-weight:600!important;letter-spacing:.2em!important;text-transform:uppercase!important;margin:0 0 20px!important}
html body main:not(.pg-home) .pagehead .eyebrow,
html body main:not(.pg-home) .stats-sec>.wrap>.eyebrow{color:var(--gold-light)!important}
html body main:not(.pg-home) .ctaband .eyebrow,
html body main:not(.pg-home) .casehead .eyebrow{color:var(--gold-dk)!important}
html body main:not(.pg-home) .casehead .eyebrow:before{content:""!important;width:32px!important;height:1px!important;background:var(--gold)!important;flex:none!important}
/* 2 · Cards unified (desktop >=981px; mobile stacks are untouched).
   - Editorial .cards rows (advisory services, projects types/featured): this site styles them
     as numbered editorial rows (top hairline, no box), and V5.15 deliberately kept the home
     01/02/03 lists editorial rather than boxing them. So here only the gap is unified
     (48px -> 30px) and rows stretch to equal height; they are NOT turned into white boxes.
   - Numbered/check lists and process steps: gap unified to 30px, editorial style kept.
   - News visit cards: boxed like the home news cards (white body, 1px hairline border,
     radius 0, no shadow, 30px column gap, equal height via stretch). The V5.14 Guardian
     feature row is NOT a card and is untouched; visit photo height stays 300px (V5.14).
   - Image heights: news cards already 300px (home V5.15, news V5.14). Advisory/project icon
     cards and the product grid carry no card images (icons / gallery), so no image height
     is set for them; the product grid is a gallery, not a card, and is untouched. */
@media (min-width:981px){
  html body main:not(.pg-home) .cards:not(.one){gap:0 30px!important;align-items:stretch!important}
  html body main:not(.pg-home) .checks{gap:0 30px!important;column-gap:30px!important}
  html body main:not(.pg-home) .steps{gap:30px!important}
  html body main[data-pg=news] .newslist .wrap{gap:56px 30px!important;align-items:stretch!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.wp{background:#fff!important;border:1px solid var(--rule)!important;border-radius:0!important;box-shadow:none!important;padding:0 0 20px!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.wp>*:not(figure){padding-left:24px!important;padding-right:24px!important}
}
/* 3 · Colour alternation: only the three measured same-colour adjacencies are adjusted,
   using only existing colours (white / ivory #F7F4EE). Every other page measured regular
   and is untouched (see change log for the per-page measured sequences).
   - Investment platform: #approach (ivory) sat directly above the ivory contact band, so
     this page's contact band goes white.
   - Smart metering: #deliveries (white) sat directly above #products (white), so
     #deliveries goes ivory; the run then reads navy stats -> ivory -> white -> ivory ->
     white -> ivory.
   - KAYZ-APL: #apl-model (ivory) sat directly above #manufacturing-facilities (ivory), so
     the facilities section goes white.
   - Smart-metering pagehead (photo, dark) into the navy stats band is header-into-band, not
     a flat-block adjacency, and is untouched. */
html body main.pg-compact .ctaband{background:#fff!important}
html body main.pg-sm #deliveries{background:#F7F4EE!important}
html body main #manufacturing-facilities{background:#fff!important}
/* 4 · Paragraph narrowing (desktop >=981px only; mobile widths untouched; already-narrow
   paragraphs are unaffected because their containers are narrower than 720px).
   Inner-page prose 820px -> 720px, the same direction as the home V5.15 trial. */
@media (min-width:981px){
  html body main:not(.pg-home) .prose{max-width:720px!important}
}

/* ---- V5.17 (Screenshot fixes on V5.16; copy, palette, fonts, type scale, photos unchanged; no deploy) ----
   User feedback on the V5.16 private preview (8 screenshots): mostly too much blank space, plus
   dark text invisible on the navy stats band (fig.2, must-fix). Measured first (measure67.py /
   measure67b.py on the V5.16 baseline), only over-threshold spots changed:
   - Fig.1/3/5 prose widening is a CALLBACK of the V5.16 AMETS narrowing (720px): the user now
     prioritises filling the right-side blank over narrow-column readability for these short
     single-column blocks. Long-form docs and two-column prose (e.g. APL model right column,
     already 720px with only ~59px right blank) are NOT widened.
   - Fig.2 colours: .stats2 li was #3A4357 (contrast 1.56 on navy) and .stats-sec .press was
     #2B3446 (contrast 1.24); .stats-foot had already been fixed to #C9CFDA in an earlier
     version but these two were missed. Both go to ivory #E7E3DA (same family as the band's
     other light text). The CAPACITY label exists in HTML but is hidden site-wide by a V5.5
     rule, so it stays hidden rather than appearing asymmetrically on one item only.
   - Fig.4 Systems gap was 82px: the summary is a wrapping flex row and the full-width
     H2 pushed the 36px chevron onto a second row (56 + 12 gap + 36 + 12 margin = 116px
     summary height). Fix: no-wrap + H2 flexes, so chevron sits on the title row.
     Row text-to-text was 78.5px, tightened via li padding.
   - Fig.5 legend-to-diagram gap was already 27.8px (not a problem); the real gap was
     prose-to-figure 80px, tightened via the figure margin.
   - Fig.3 gintro-to-grid gap was already 28px (not a problem); the blank was the gintro's
     right-side blank (820px column, 444px empty), fixed by widening.
   - Fig.6 APL model: title and prose columns already top-aligned to the same pixel
     (y=1042.4) and paragraph gaps already 12px; the remaining blank is structural
     (short title column vs long text column) and is NOT filled with invented content.
   - Fig.7 APL facilities trailing blank measured 30.1px (below threshold), next section
     adjacent; not changed.
   - Fig.8 plain navy headers measured 340px fixed height; the earlier design comment
     already called for a 240px plain header. Only .plain:not(.ph55) headers shrink;
     .photo headers and .ph55 side-photo headers (400px design) are untouched. */
/* Fig.2 (all widths: the dark-on-navy text is unreadable on mobile too) */
html body main .stats-sec .stats2 li{color:#E7E3DA!important}
html body main .stats-sec .stats2 li span{color:#E7E3DA!important}
html body main .stats-sec .press{color:#E7E3DA!important}
@media (min-width:981px){
  /* Fig.1 home platform prose 720px -> 1064px: right blank 592px -> ~200px */
  html body main.pg-home #platform .prose{max-width:1064px!important}
  /* Fig.5 investment how-it-works prose 720px -> 1064px: right blank 592px -> ~200px */
  html body main[data-pg=investment-platform] #how-it-works .prose{max-width:1064px!important}
  /* Fig.5 prose-to-figure gap 80px -> ~40px */
  html body main[data-pg=investment-platform] #how-it-works .aplfig{margin-top:0!important}
  html body main[data-pg=investment-platform] #how-it-works .aplfig .aplh{margin-top:0!important}
  /* Fig.3 smart facilities intro 820px -> 1064px: right blank 444px -> ~200px */
  html body main.pg-sm #manufacturing .gintro{max-width:1064px!important}
  /* Fig.4 Systems title-to-list gap 82px -> ~36px; row text-to-text 78.5px -> ~66px */
  html body main.pg-sm #software details.clp>summary{padding-bottom:0!important;margin-bottom:0!important;flex-wrap:nowrap!important}
  html body main.pg-sm #software details.clp>summary h2{flex:1 1 auto!important;min-width:0!important}
  html body main.pg-sm #software details.clp>summary h2{margin-bottom:12px!important}
  html body main.pg-sm #software .clp-body{padding-top:0!important;margin-top:0!important}
  html body main.pg-sm #software .checks li{padding:14px 0 18px!important}
  /* Fig.8 plain navy headers (not photo, not ph55 side-photo): 340px -> ~221px.
     Root cause found on re-measure: .pagehead min-height:340px (line 1076) forced the
     height, and the crumbs ol margin-bottom:56px inflated the crumbs row to 88px. */
  html body main .pagehead.plain:not(.ph55){min-height:0!important}
  html body main .pagehead.plain:not(.ph55)>.wrap{padding-top:40px!important;padding-bottom:40px!important}
  html body main .pagehead.plain:not(.ph55)>.wrap>.crumbs{margin-bottom:12px!important}
  html body main .pagehead.plain:not(.ph55)>.wrap>.crumbs ol{margin-bottom:0!important}
  html body main .pagehead.plain:not(.ph55) .eyebrow{margin-bottom:12px!important}
}

/* ---- V5.18 (Screenshot fixes round 2 on V5.17; copy, palette, fonts, type scale, photos unchanged; no deploy) ----
   User feedback on the no-password preview (7 screenshots image-12..19): mostly left-text/right-blank.
   Measured first on the V5.17 baseline at 1440px (wrap 1360px, x=40):
   - Fig.2 Technology (#technology, dark navy): the D-pattern two-column prose grid was capped at
     720px by the V5.16 global rule (line 1257 !important beats the id rule's max-width:none),
     right blank 592px. Widen grid to 1120px -> right blank ~192px. Two text columns kept.
   - Fig.3 Electricity Distribution (#distribution): stacked already (.lr-b margin-left reset to
     0 by line 811), prose 720px -> 1064px (V5.17 calibre), right blank 592px -> ~248px.
   - Fig.4 Smart Metering photo pagehead lead: 820px -> 1064px, right blank 492px -> ~208px.
     Only width changed; overlay gradient and light text colour untouched.
   - Fig.6 investment #how-it-works: already 1064px from V5.17 but right blank still 248px;
     widened to 1120px -> ~192px (the only remaining收紧 point; gaps already tight).
   - APL #apl-model: OWNER-ORDERED restructure (2026-10-29, user named this block): two-column
     (title left / long text right) -> stacked: title on top, body full width below. Scoped to
     #apl-model only (id is unique site-wide); all other .lr two-column sections untouched.
   - NOT done this round: button background unification (awaiting owner style choice); Guardian
     hyperlink on the News press row (awaiting the article URL; never invent one);
     Enquiries/partnership bands (awaiting layout direction) - measured only: Enquiries
     .cb-t 699px / .cb-b 509px in a flex row; partnership text 756px + button 266px stacked. */
@media (min-width:981px){
  /* Fig.2 Technology two-column prose grid 720px -> 1120px */
  html body main[data-pg=what-we-do] #technology .lr-b .prose{max-width:1120px!important}
  /* Fig.3 Electricity Distribution prose 720px -> 1064px */
  html body main[data-pg=what-we-do] #distribution .lr-b .prose{max-width:1064px!important}
  /* Fig.4 Smart Metering photo pagehead lead 820px -> 1064px (width only) */
  html body main[data-pg=smart-metering] .pagehead.photo .lead{max-width:1064px!important}
  /* Fig.6 investment how-it-works prose: V5.18 set 1120px; V5.20 (owner: right side still empty) -> full container width */
  html body main[data-pg=investment-platform] #how-it-works .prose{max-width:none!important}
  /* APL #apl-model: two-column -> stacked (owner-ordered 2026-10-29) */
  html body #apl-model .lr{display:block!important}
  html body #apl-model .lr-h{margin-bottom:32px!important}
  html body #apl-model .lr-b .prose{max-width:none!important}
}

/* ---- V5.19 (owner decisions 2026-10-29: buttons unified to white-bg outline; contact bands stacked; Guardian news links) ---- */
/* 1) Buttons unified: every .btn renders white bg + navy 1.5px border + navy text; hover -> navy bg + white text.
      Text links (e.g. .linkrow gold-underline links) untouched.
      NOTE: .ctaband.cta-line .btn.primary is (0,4,0), so the selectors below carry 5 classes to beat it. */
html body .btn.btn.btn.primary,html body .btn.btn.btn.navy{background:#fff!important;color:var(--navy)!important;border:1.5px solid var(--navy)!important}
html body .btn.btn.btn.primary:hover,html body .btn.btn.btn.navy:hover{background:var(--navy)!important;color:#fff!important;border-color:var(--navy)!important}
html body .btn.btn.btn.ghost,html body .btn.btn.btn.ghostnavy{background:#fff!important;color:var(--navy)!important;border:1.5px solid var(--navy)!important}
/* Dark contexts (hero photo, navy stats band): white button stays readable; hover -> gold so it remains visible on navy. */
html body .hero .btn.btn.btn.primary,html body .hero .btn.btn.btn.navy{border-color:#fff!important}
html body main .stats-sec .btn.btn.btn.primary,html body main .stats-sec .btn.btn.btn.navy{border-color:#fff!important}
html body .hero .btn.btn.btn.primary:hover,html body .hero .btn.btn.btn.navy:hover,
html body main .stats-sec .btn.btn.btn.primary:hover,html body main .stats-sec .btn.btn.btn.navy:hover{background:#BF9B5D!important;border-color:#BF9B5D!important;color:#0A1630!important}
/* 2) Contact bands stacked: title+text on top, buttons below left-aligned, right column removed. */
@media (min-width:821px){
  html body .ctaband .cb-in{grid-template-columns:1fr!important;gap:28px!important;align-items:start!important}
  html body .ctaband .cb-b{justify-content:flex-start!important;flex-wrap:wrap!important}
}
/* 3) News: linked headlines keep h2 styling (underline on hover); press-line links inherit surrounding colour. */
html body main[data-pg=news] .newslist .nitem h2 a.nhl{color:inherit!important;text-decoration:none!important}
html body main[data-pg=news] .newslist .nitem h2 a.nhl:hover{text-decoration:underline!important}
html body main[data-pg=news] .newslist .wrap>article.nitem.nw{grid-column:1/-1!important;display:flex!important;flex-direction:column!important;margin:0!important;padding:0!important;border:0!important;max-width:none!important}
html body p.press a{color:inherit!important;text-decoration:underline!important;text-underline-offset:3px}

/* ---- V5.20 (owner round-2 feedback 2026-10-29) ---- */
/* 2a) Stats band (home, dark): a.stat .go "View project ->" was navy on navy - invisible text, only the gold
      underline showed. -> ivory, gold underline kept. Scoped to the home dark stats band only. */
html body main.pg-home .stats-sec a.stat .go{color:#E7E3DA!important}
/* 2b) Footnote link must not break mid-phrase: "More about INTERSTE and KAYZ" stays on one line. */
html body main.pg-home .stats-sec .stats-foot a{white-space:nowrap!important}
/* 4) "How an engagement runs" steps: measured 2026-10-29 - all four descriptions are 17px/28px in 294px
      columns, no size bug; the middle two only look heavier because the copy is longer. Do NOT edit the copy.
      text-wrap:balance evens out the line breaks. */
html body ol.steps li p{text-wrap:balance}
/* 5) Contact bands after stacking: centre a narrow column on desktop so the right side is no longer one big
      void. Text stays left-aligned; buttons stay below the text, left-aligned (owner choice kept). */
@media (min-width:821px){
  html body .ctaband .cb-in{max-width:720px!important;margin-left:auto!important;margin-right:auto!important}
}
/* 7) News 'Beyond the meter': the tall newspaper scan left the text column short with dead space below.
      Crop the scan to 4/3 top-anchored (masthead/headline/photo visible, long body text cropped),
      vertically centre the text column, tighten the gap to the 2021 item. 2021 item untouched. */
@media (min-width:821px){
  html body main[data-pg=news] .newslist .wrap>article.nitem.np{align-items:center!important}
  html body main[data-pg=news] .newslist .wrap>article.nitem.np>figure img{aspect-ratio:4/3!important;min-height:0!important}
  html body main[data-pg=news] .newslist .wrap>article#guardian-2021{margin-top:48px!important}
  html body main[data-pg=news] .newslist .wrap>article#guardian-2021 .prose{max-width:none!important}
}
